使用选项ID更改触发选项?

时间:2014-08-09 12:07:04

标签: jquery

我使用他们的值成功触发了选项的更改。但是我可以使用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');

这样做的正确方法是什么?

1 个答案:

答案 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');