我有一堆带有这样标签的HTML:
<div id="Field~1">Text text</div>
我不能使用正常的ID选择器,如:
alert($("#Field~1").text())
我猜它与&#34;〜&#34;有关。但是仍然可以引用这些类型吗?
我在这里设置了一个JSfiddle:http://jsfiddle.net/4M97c/
答案 0 :(得分:8)
您需要使用\\
转义选择器中的所有出现的特殊字符。
第一种方法:
alert($("#Field\\~1").text())
<强> Working Demo 强>
第二种方法:
var ID="Field~1";
alert($("[id='"+ID+"']").text())
<强> Working Fiddle 强>
答案 1 :(得分:6)
您需要使用双反斜杠~
转义特殊字符\\
。来自 docs :
使用任何元字符(例如 !&#34;#$%&amp;&#39;()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为名称的字面部分,它必须 用两个反斜杠转义:\\
alert($("#Field\\~1").text())
<强> Updated Fiddle 强>
答案 2 :(得分:1)
可以说,处理标识符中特殊字符的最简单(也是最佳性能)方法是使用getElementById()
并将其包装在jQuery对象中。
alert($(document.getElementById('Field~1')).text());
除了选择器之外,$()
还接受一个DOM元素并将其转换为jQuery对象。
答案 3 :(得分:0)
这样做:
alert($('[id="Field~1"]').text())
这是id的字符串表示形式,因此您不必担心转义特殊字符。