1

如果我需要预先选择具有特定值的下拉选项,我可以使用这个:

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

但是如果我需要根据它包含的文本预先选择一个选项,我需要执行所有这些操作:

        $('select option').each(function() {
            var $this = $(this);
            if($this.text() == 'My Text') {
                $this.attr('selected', 'selected');
            }
        });

有没有办法做到这一点,而不像第一种方式那样循环遍历所有选项标签,而是基于文本而不是值?

4

4 回答 4

2

查看:contains()选择器。

http://api.jquery.com/contains-selector/

$('select option:contains("My Text")').prop('selected', true);
于 2012-06-20T05:08:55.067 回答
1

使用:contains选择器。例如:

$('select option:contains("My Text")').attr('selected', 'selected');
于 2012-06-20T05:09:16.563 回答
0

我会使用filter()我认为比:contains选择器更快的方法:

$('select option')
  .filter(function(){ return $(this).text() === 'my text' })
  .prop('selected', true)
于 2012-06-20T05:12:55.903 回答
0

搁置:contains一旁

$('select option').each(function() {
    this.selected = this.text == 'lol2'
});
于 2012-06-20T05:16:50.000 回答