2016-12-17 64 views
0

下面代码相匹配的选择元素的VAL并选择代码的选项:如何将select元素中的选项与子串匹配?

$("#modelListSelect option[val='" + modelMatch + "']").attr("selected", "true"); 

我的选择列表值是这样的:

["Washington 2015", "New York 1988", "Detroit 2000", "San Francisco 1999"]; 

这几年在名单是动态的,他们可以在不同的时间不同的,例如:

["Washington 2011", "New York 1998", "Detroit 1975", "San Francisco 2016"]; 

所有我想要做的是匹配“VAL”上面带有“modelMatch”诸如“底特律”。所以它会找到“底特律2000”或“底特律1975”

我该怎么办?

回答

1

这样..

需要拆分modelMatch值,并获得匹配的子为好。

https://api.jquery.com/attribute-starts-with-selector/

var modelMatch = "Detroit 2001"; 
 
var res = modelMatch.split(" ")[0]; 
 
$("#modelListSelect option[value^='" + res + "']").attr("selected", "true");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="modelListSelect"> 
 
    <option value="Washington 2015">Washington 2015</option> 
 
    <option value="New York 1988">New York 1988</option> 
 
    <option value="Detroit 2000">Detroit 2000</option> 
 
    </select>

2

您可以使用val^='" + modelMatch + "']"语法来搜索以modelMatch字符串开头的属性。您还应该使用选项元素的标准value属性,而不是val

modelMatch = "Detroit"; 
 
$("#modelListSelect option[value^='" + modelMatch + "']").attr('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select id="modelListSelect"> 
 
    <option value="Washington 2015">Washington 2015</option> 
 
    <option value="New York 1988">New York 1988</option> 
 
    <option value="Detroit 2000">Detroit 2000</option> 
 
    <option value="San Francisco 1999">San Francisco 1999</option> 
 
</select>

1

使用jQuery的Attribute Starts With Selector

的HTML:

<select id="foo"> 
    <option value="Washington 2017">Washington 2017</option> 
    <option value="Detroit 2016">Detroit 2016</option> 
    <option value="San Francisco 2015">San Francisco 2015</option> 
</select> 

而jQuery代码:

$("#foo option[value^='Detroit']").attr("selected", "selected"); 

我用一个例子创建了一个fiddle

我希望它有帮助。

0

这可能对你有所帮助....

<select id="ddlListSelect"> 
    <option value="Washington 2015">Washington 2015</option> 
    <option value="New York 1988">New York 1988</option> 
    <option value="Detroit 2000">Detroit 2000</option> 
    </select> 

<script type="text/javascript"> 
    $(document).ready(function() {  

     var ddlText = "Detroit 2001"; 
     var str = ddlText.substr(0, ddlText.indexOf(' '));; 
     $("#ddlListSelect option[value^='" + str + "']").attr("selected", "true"); 

    }); 
</script> 
相关问题