我使用他们的值成功触发了选项的更改。但是我可以使用id
来完成它们(它们的值没有被修复,所以我需要使用id
s。)
HTML:
<select id="ilkoduu">
<option val='1' id='1'>Adana</option>
<option val='2' id='2'>Adıyaman</option>
<option val='3' id='3'>Afyon</option>
</select>
使用jQuery的JavaScript:
$('#ilkoduu').val('3').trigger('change');
这样做的正确方法是什么?
答案 0 :(得分:1)
您必须使用选项id
查找该选项的值(这很痛苦,因为那些id
值以数字开头 - #1
是无效的CSS选择器,你必须使用转义符#\31
来编写它,当然如果你在字符串文字中写它,你必须转义反斜杠:"#\\31"
):
var val = $("#\\31").val();
$("#ilkoduu").val(val).trigger('change');
或者一起:
$("#ilkoduu").val($("#\\31").val()).trigger('change');
或者,实际上,您可以直接使用DOM来避免选择器问题:
$("#ilkoduu").val(document.getElementById("1").value).trigger('change');
(getElementById
不使用CSS选择器,因此不会受到以数字开头的id
的困扰。)
一般来说,为了避免像上面那样写丑陋的转义,如果你不得不在CSS选择器中使用它们,不要用数字启动id
值。例如,将x
放在他们面前或其他地方:
<select id="ilkoduu">
<option value='1' id='x1'>Adana</option>
<option value='2' id='x2'>Adıyaman</option>
<option value='3' id='x3'>Afyon</option>
</select>
选择器变得更加清晰:
$("#ilkoduu").val($("#x1").val()).trigger('change');