如果我需要预先选择具有特定值的下拉选项,我可以使用:
$('select option[value="123"]').attr('selected', 'selected');
但如果我需要根据其中包含的文字预先选择一个选项,我需要完成所有这些:
$('select option').each(function() {
var $this = $(this);
if($this.text() == 'My Text') {
$this.attr('selected', 'selected');
}
});
有没有办法在没有循环遍历所有选项标签的情况下执行此操作,例如第一种方式但是基于文本而不是值?
答案 0 :(得分:2)
查看:contains()
选择器。
http://api.jquery.com/contains-selector/
$('select option:contains("My Text")').prop('selected', true);
答案 1 :(得分:1)
使用:contains选择器。例如:
$('select option:contains("My Text")').attr('selected', 'selected');
答案 2 :(得分:0)
我会使用filter()
我认为会比:contains
选择器更快:
$('select option')
.filter(function(){ return $(this).text() === 'my text' })
.prop('selected', true)
答案 3 :(得分:0)
将:contains
放在一边
$('select option').each(function() {
this.selected = this.text == 'lol2'
});