JQuery在select列表中设置选定的属性

我有以下的HTML

<select id="dropdown"> <option>A</option> <option>B</option> <option>C</option> </select> 

我有string“B”,所以我想设置选定的属性,所以它会是:

 <select id="dropdown"> <option>A</option> <option selected="selected">B</option> <option>C</option> </select> 

我将如何在JQuery中做到这一点?

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

 <option>B</option> 

 <option value="B">B</option> 

这将有助于你想要做这样的事情:

 <option value="IL">Illinois</option> 

有了这个,下面的jQuery将做出改变:

 $("select option[value='B']").attr("selected","selected"); 

如果您决定使用value属性,则需要循环显示每个选项,然后手动检查其值:

 $("select option").each(function(){ if ($(this).text() == "B") $(this).attr("selected","selected"); }); 
 <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"); 

如果您使用的是JQuery,因为1.6必须使用.prop()方法:

 $('select option:nth(1)').prop("selected","selected"); 

我将遍历选项,将文本与我想要select的内容进行比较,然后在该选项上设置选定的属性。 一旦你find正确的,终止迭代(除非你有一个多选)。

  $('#dropdown').find('option').each( function() { var $this = $(this); if ($this.text() == 'B') { $this.attr('selected','selected'); return false; } }); 

您可以按照danielrmt的.selectedIndex策略,但根据选项标签中的文本来确定索引,如下所示:

 $('#dropdown')[0].selectedIndex = $('#dropdown option').toArray().map(jQuery.text).indexOf('B'); 

这可以在不使用值属性的情况下在原始HTML上运行。

你可以使用纯粹的DOM。 见http://www.w3schools.com/htmldom/prop_select_selectedindex.asp

 document.getElementById('dropdown').selectedIndex = 1; 

但jQuery可以帮助:

 $('#dropdown').selectedIndex = 1; 

码:

 var select = function(dropdown, selectedValue) { var options = $(dropdown).find("option"); var matches = $.grep(options, function(n) { return $(n).text() == selectedValue; }); $(matches).attr("selected", "selected"); }; 

例:

 select("#dropdown", "B"); 
 $('#select_id option:eq(0)').prop('selected', 'selected'); 

这很好

这可以是一个解决scheme

 $(document).on('change', 'select', function () { var value = $(this).val(); $(this).find('option[value="' + value + '"]').attr("selected", "selected"); }) 

东西沿线…

 $('select option:nth(1)').attr("selected","selected");