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

2 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>
Run Code Online (Sandbox Code Playgroud)

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

document.getElementById("order2|2").selected=true;
Run Code Online (Sandbox Code Playgroud)

这很好.但是,使用jQuery

$("#order2|2").attr("selected","selected");
Run Code Online (Sandbox Code Playgroud)

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

$("#order2|2").val();
Run Code Online (Sandbox Code Playgroud)

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

Ian*_*Ian 9

使用此选择器:

$("#order2\\|2")
Run Code Online (Sandbox Code Playgroud)

来自jQuery选择器文档:

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

参考: