Jquery ID选择器不起作用

时间:2014-04-02 09:31:04

标签: javascript jquery jquery-ui jquery-plugins

我有一堆带有这样标签的HTML:

<div id="Field~1">Text text</div>

我不能使用正常的ID选择器,如:

alert($("#Field~1").text())

我猜它与&#34;〜&#34;有关。但是仍然可以引用这些类型吗?

我在这里设置了一个JSfiddle:http://jsfiddle.net/4M97c/

4 个答案:

答案 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的字符串表示形式,因此您不必担心转义特殊字符。