如何将select元素中的选项与子字符串匹配?

时间:2016-12-17 12:06:27

标签: javascript jquery

下面的代码与select元素中的val匹配,并在代码中选择选项:

$("#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"例如" Detroit"。所以它会找到" Detroit 2000"或"底特律1975"

我该怎么做?

4 个答案:

答案 0 :(得分: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>
&#13;
&#13;
&#13;

答案 1 :(得分: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示例。

我希望它有所帮助。

答案 2 :(得分:1)

这样..

您需要拆分modelMatch值并获取匹配的子字符串。

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

&#13;
&#13;
var modelMatch = "Detroit 2001";
var res = modelMatch.split(" ")[0];
$("#modelListSelect option[value^='" + res + "']").attr("selected", "true");
&#13;
<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>
&#13;
&#13;
&#13;

答案 3 :(得分: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>