HTML名称属性中的大括号

时间:2013-04-24 21:23:40

标签: javascript jquery html jquery-selectors getelementsbyname

我正在尝试根据名称检索DOM元素。不幸的是,他们的名字里面有大括号{}

jQuery(1.6.4)能够毫无问题地检索它们。但此时我正试图用getElementsByName()替换这些调用,但gEBN不匹配查询字符串中带有大括号的任何内容。我试过反斜杠一次又一次地逃避它无济于事。

有没有办法在不改变使用花括号的约定的情况下执行此操作?

It also looks like它们不在名称attr中允许的字符集中。

更新:似乎可以在Chrome中使用,但不能在Safari for Windows中使用。但真正奇怪的是,甚至Safari for Windows也能很好地处理这些小提琴。

2 个答案:

答案 0 :(得分:2)

如果您阅读selectors上的jQuery文档页面,您会看到:

  

使用任何元字符(例如!“#$%&'()* +,。/:;< =>?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\\。例如,id =“foo.bar”的元素可以使用选择器$("#foo\\.bar")

答案 1 :(得分:1)

当您执行明确超出标准允许范围的事情时,您应该期待“奇怪”的结果。如果您选择退出预订,那么您自己就是一个人。有些浏览器会工作,有些则不会。过去工作的人会在新版本发布时不加警告地破坏。

所以这取决于你想要做什么。如果你只是为自己或小团队建立一些东西,这可能没问题。如果你正在为一般观众建立一些东西,最好坚持标准而不是使用不允许的角色。