2

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

<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 不喜欢管道符号?谢谢。

4

3 回答 3

9

使用这个选择器:

$("#order2\\|2")

来自 jQuery 选择器文档:

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

参考:

于 2013-05-20T20:35:41.423 回答
2

你需要|逃脱\\

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

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

于 2013-05-20T20:35:55.307 回答
0

这一切都在文档中:

http://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/

于 2013-05-20T20:38:35.857 回答