使用jQuery在选择列表上设置所选属性

Rup*_*ert 54 html jquery html-select

我有以下HTML:

<select id="dropdown">
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我有字符串"B"所以我想selected在它上面设置属性,所以它将是:

<select id="dropdown">
    <option>A</option>
    <option selected="selected">B</option>
    <option>C</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我将如何在jQuery中执行此操作?

Sam*_*son 124

如果您不介意稍微修改HTML以包含value选项的属性,则可以显着减少执行此操作所需的代码:

<option>B</option>
Run Code Online (Sandbox Code Playgroud)

<option value="B">B</option>
Run Code Online (Sandbox Code Playgroud)

当您想要执行以下操作时,这将非常有用:

<option value="IL">Illinois</option>
Run Code Online (Sandbox Code Playgroud)

有了这个,后面的jQuery将进行更改:

$("select option[value='B']").attr("selected","selected");
Run Code Online (Sandbox Code Playgroud)

如果您决定使用该value属性,则需要循环浏览每个选项,并手动检查其值:

$("select option").each(function(){
  if ($(this).text() == "B")
    $(this).attr("selected","selected");
});
Run Code Online (Sandbox Code Playgroud)

  • 在添加`value`属性之后,选择也可以这样做:`$("#dropdown").val("B");` (14认同)
  • 设置`.val()`不会将`.change()`事件绑定到`<select>`.只是说...... (5认同)
  • @madtyn $ .fn.prop直到2011年才被添加.这个答案早于几年就已经存在.此外,虽然不是我的意图,但通过更改属性,您可以通过属性选择器更好地控制样式. (3认同)

小智 12

<select id="cars">
<option value='volvo'>volvo</option>
<option value='bmw'>bmw</option>
<option value='fiat'>fiat</option>
</select>

var make = "fiat";

$("#cars option[value='" + make + "']").attr("selected","selected");
Run Code Online (Sandbox Code Playgroud)


G.B*_*ato 7

如果您使用的是JQuery,那么从1.6开始就必须使用.prop()方法:

$('select option:nth(1)').prop("selected","selected");
Run Code Online (Sandbox Code Playgroud)