通过传递给变量的值选择选择选项

Ily*_*iou 4 jquery select option

我有一个包含以下代码的html文件:

<select id="gouv" name="gouv">
...some options here...
</select>
Run Code Online (Sandbox Code Playgroud)

和以下jQuery代码:

$('#gouv option[value="myvalue"]').attr("checked","checked");
Run Code Online (Sandbox Code Playgroud)

这一点,你当然知道设置选项值"myvalue"来检查哪个完美.

现在的问题是,我不知道,我想作为托运因为这个值是存储在一个全局变量中的一些函数的结果来设置选项的值.为简化起见,经过长时间的调试,我将问题减少到以下几点:

var ident="myvalue";
$('#gouv option[value=ident]').attr("checked","checked");
Run Code Online (Sandbox Code Playgroud)

这段代码不起作用!

我想知道为什么它不起作用,我们不能将值作为变量传递?这有什么解决方法吗?

gdo*_*ica 18

var ident="myvalue";
$('#gouv option[value="' + ident + '"]').attr("selected", "selected");
Run Code Online (Sandbox Code Playgroud)

selected是的<option>,checked是收音机!

prop如果你的jQuery版本大于1.6 ,那就更好用了

$('#gouv option[value="' + ident +'"]').prop("selected", true);
Run Code Online (Sandbox Code Playgroud)

请注意,您最好使用filter而不是属性选择器:

$('#gouv option').filter(function(){
    return this.value == indent;
}).prop("selected", true);
Run Code Online (Sandbox Code Playgroud)

为什么你应该filter用于价值

如果你需要支持黑莓,他们有jQuery处理的option.value错误:

$('#gouv option').filter(function(){
    return $(this).val() == indent;
}).prop("selected", true);
Run Code Online (Sandbox Code Playgroud)


Mar*_*ich 5

jQuery .val()请参阅此处)将按值选择一个选项:

var ident = "myvalue";
$('#gouv').val(ident);
Run Code Online (Sandbox Code Playgroud)

这相当于:

var ident = "myvalue";
$('#gouv option[value="' + ident + '"]').attr("selected", "selected");
Run Code Online (Sandbox Code Playgroud)

除了后者如果ident包含任何双引号会有问题。