我有以下HTML标签,并希望通过jQuery选择它们:
<div foo:bar="test"></div>
<span foo:bar="test2"></span>
<xxx foo:bar="test3"></xxx>
所以,我想选择所有具有foo:bar
属性的标签。
我试过以下:
$('[foo:bar]').addClass("fooBar");
// Error: Syntax error, unrecognized expression: [adv:sensorid]
我知道,正确的语法会像&#34; data-foo-bar&#34;,但我必须使用&#34; foo:bar&#34;。
这在jQuery中甚至可能吗?
如果它有所帮助,我甚至可以使用AngularJS。非常感谢你!
答案 0 :(得分:9)
这是可能的。您需要使用\\
$('[foo\\:bar]').addClass("fooBar");
使用任何元字符(例如 !“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为名称的字面部分,必须 用两个反斜杠逃脱:\\。例如,一个元素 id =“foo.bar”,可以使用选择器$(“#foo \\。bar”)。
答案 1 :(得分:-1)
例如我们有HTML:
<span id="item-1023293" pr:position="hr">Jhon</span>
我们需要按属性选择所有span元素。
所以选择器应该是这样的:
document.querySelectorAll('span[pr\\:position="hr"]')