作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 dom 元素,其中包含完全限定名称作为 id 属性的一部分;
<div id="domain\element\div">My Div</div>
让 jQuery 通过 ID 选择元素似乎是不可能的。这是我的实验;
var $e1 = $('#domain\\\element\\\div');
var $e2 = $('#domain\\element\\div');
var $e3 = $(document.getElementById('domain\\\element\\\div'));
console.log($e1);
console.log($e2);
console.log($e3);
控制台的输出显示前两个为空,而第三个有效;
[]
[]
<div id="domain\element\div">TODO write content</div>
我使用的是 jQuery 1.5.2。这是 jQuery 本身的错误还是我的选择器字符串错误?
最佳答案
如果您可以更改 HTML 代码中的 ID,请为您的 ID 找到除反斜杠 \
之外的其他分隔符,以便为您的选择器创建有效的 ID(请参阅 here )。下划线 _
会很好。
如果您无法更改 HTML,jQuery 仍然可以使用 ID 和 ID 选择器中的反斜杠。除此之外,您需要使用四个反斜杠来匹配 ID 选择器中的每个文字反斜杠:
$('#domain\\\\element\\\\div')
您可以通过以下方式实现这一点
获取 ID:
domain\element\div
添加 #
符号并转义选择器的反斜杠:
#domain\\element\\div
通过将每对反斜杠加倍来转义以在 JavaScript 字符串中使用(另请注意引号):
'#domain\\\\element\\\\div'
然后将字符串传递给 $()
,如上所示。
关于jQuery 选择器和反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825948/
我是一名优秀的程序员,十分优秀!