管道符号“|”的jQuery错误在ID名称中

时间:2013-05-20 20:33:32

标签: javascript jquery element pipe

我有一个选择菜单,它的选项ID是这样的:

<select>
<option id='order1|2'>1</option>
<option id='order2|2'>2</option>
<option id='order3|2'>3</option>
</select>

我想用jQuery动态选择一个。在javascript中,我可以做到

document.getElementById("order2|2").selected=true;

并且工作正常。但是,使用jQuery

$("#order2|2").attr("selected","selected");

给出了错误的表达式错误,当我使用它时,任何其他命令也是如此,例如

$("#order2|2").val();

我不确定发生了什么。 jQuery不喜欢管道符号?感谢。

3 个答案:

答案 0 :(得分:9)

使用此选择器:

$("#order2\\|2")

来自jQuery选择器文档:

  

使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\\。

参考:

答案 1 :(得分:2)

您需要使用|

转义\\
$("#order2\\|2").prop("selected",true);

演示--> http://jsfiddle.net/VzAQN/1/

答案 2 :(得分:0)