1

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

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

有没有办法在不改变使用大括号的约定的情况下做到这一点?

看起来它们不在名称 attr 中允许的字符集中。

更新:似乎适用于 Chrome,但不适用于 Windows 的 Safari。但真正奇怪的是,即使是 Windows 版 Safari 也能很好地处理这些问题。

4

2 回答 2

2

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

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

于 2013-04-24T21:40:51.890 回答
1

当您做的事情明确超出标准允许的范围时,您应该期待“奇怪”的结果。如果您选择取消预订,那您就只能靠自己了。有些浏览器可以工作,有些则不行。当新版本出现时,曾经工作的那些将在没有警告的情况下中断。

所以这取决于你想要做什么。如果您只是为自己或一个小团队构建一些东西,这可能没问题。如果您正在为普通观众构建一些东西,最好遵守标准并且不要使用不允许的字符。

于 2013-04-24T21:50:59.853 回答