4

您可能知道,HTML5 允许在 ID 名称中使用更多字符- 请参阅HTML5 规范,该规范现在将空格作为唯一的无效字符。尝试将其与 JQuery 一起使用会显示 JQuery 会忽略 ID 中特定有效字符“/”之后的所有字符。

<section>
    <div id='foo/bar'>
        YAAY
    </div>
    <div id='foo'>
        BOO
    </div>
</section> ​

记录 'foo/bar' 元素

console.log(​$(document).find('div#foo/bar')​​​​)​

显示返回的错误元素:

[
<div id=​"foo">​
    BOO
​&lt;/div>​
]

这是同时使用当前稳定的 JQuery (1.7.1) 和当前的 JQuery 边缘。

这是一个 JQuery 错误,还是我做错了什么?

4

1 回答 1

4

转义斜线(演示:http: //jsfiddle.net/m9NT8/):

console.log(​$(document).find('div#foo\\/bar')​​​​)​

PS。$(document).find('selector')相当于$(selector)

此行为在Sizzle 源代码的 RegEx 中定义,第 374 行

ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
于 2012-03-17T14:24:56.213 回答