如何根据标签在jquery中选择一个值

时间:2014-01-24 12:35:50

标签: javascript jquery jquery-ui

嗨,我有一个像这样的选择标签

<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来匹配。

5 个答案:

答案 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);