嗨,我有一个像这样的选择标签
<div id="container1">
<select id="firstbox">
<option value="1">kk</option>
<option value="2">kkk</option>
<option value="2">kkkk</option>
</select>
我尝试使用以下方法选择值kk:
var modname="kk"
$('#firstbox option:contains('+modname+')').prop('selected',true);
但这似乎提出了最后一场比赛“kkkk”。 有没有其他功能可以完全匹配? 我不想使用id来匹配。
答案 0 :(得分:3)
使用:
$("#firstbox option:contains('" + firstbox + "')")
.filter(function(i){
return $(this).text() === firstbox;
})
.attr("selected", true)
OR
if($('#firstbox ').find('option[text="'+modname+'"]').length!=0)
$('#firstbox ').find('option[text="'+modname+'"]').prop('selected',true);
<强> Working Fiddle 强>
答案 1 :(得分:2)
尝试这样的事情
最新的jQuery版本
$('#firstbox option').filter(function () {
return $(this).html() == modname;
}).prop('selected',true);
答案 2 :(得分:1)
最简单的是,
$('#firstbox option').filter(function () {
return $(this).text() == modname;
}).prop('selected', true);
答案 3 :(得分:0)
您应该明确地使用value属性来标识您的选项(或“class”或“data- *”属性),而不是搜索文本内容以提高效率并获得更清晰的代码 - 并避免像你正面对。 :)
我建议使用以下代码:
var modval = "1" ;
$('#firstbox').val(modval);
答案 4 :(得分:0)
要选择由空格分隔的整个单词,请在“=”之前使用tilda:
$('#firstbox option[text~="'+modname+'"]').prop('selected',true);