<select>的jquery选择器,正好有2个子节点

时间:2016-11-14 11:30:05

标签: jquery

我想要一个jquery选择器,它选择所有&lt; select&gt;正好有2个选项。 我尝试了一切,但无法找到任何合适的答案。

1 个答案:

答案 0 :(得分:6)

CSS没有用于计算子项的数字的选择器构造,因此您不会只为此获得一个选择器。相反,您可以使用filter

var selectsWithTwoOptions = $("select").filter(function() {
    return this.options.length == 2;
});

或者在ES2015中:

let selectsWithTwoOptions = $("select").filter(() => this.options.length == 2);

示例:

var selectsWithTwoOptions = $("select").filter(function() {
    return this.options.length == 2;
});
selectsWithTwoOptions.css({
  color: "green",
  fontWeight: "bold"
});
select {
  width: 12em;
}
<div>
  <select>
    <option>I have one option</option>
  </select>
</div>
<div>
  <select>
    <option>I have two options</option>
    <option>two</option>
  </select>
</div>
<div>
  <select>
    <option>I have three options</option>
    <option>two</option>
    <option>three</option>
  </select>
</div>
<div>
  <select>
    <option>I have four options</option>
    <option>two</option>
    <option>three</option>
    <option>four</option>
  </select>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>