选择选项值中具有部分匹配的选项

时间:2014-06-05 06:10:25

标签: jquery html

我的下拉列表就像

<select id="taskType">
    <option value="xyz:1">Employee Name</option>
    <option value="abc:2">Employee Name</option>
    <option value="123:3">Employee Name</option>
    <option value="efg:4">Employee Name</option>
    <option value="hij:5">Employee Name</option>
   </select>

我想在值中选择“:4”选项。 我尝试使用字符串匹配

$("#taskType option[value^='"+str.match(/(:4)/g)+"']").prop("selected", true);

但它没有给出结果。我也试过了包含函数。

$("#taskType option[value:contains(':4')]").prop("selected", true);

仍然没有得到结果。 任何人都可以帮我找到我的代码中的错误。

4 个答案:

答案 0 :(得分:7)

您可以使用attribute ends with选择器

$("#taskType option[value$=':4']").prop("selected", true);

演示:Fiddle

答案 1 :(得分:4)

尝试在此上下文中使用.filter()

$("#taskType option").filter(function(){
   return $(this).val().indexOf(':4') > -1
}).prop("selected", true);

DEMO

或使用attribute contains(*=)选择器

$("#taskType option[value*=':4']").prop("selected", true);

DEMO

答案 2 :(得分:1)

你可以这样做:

$("#taskType option").each(function(){

    if($(this).val().indexOf(":4") != -1)
    {
        $(this).prop("selected", true)
    }

});

FIDDLE DEMO

答案 3 :(得分:0)

试试这个

$("#taskType option[value~=':4']").prop("selected", true);