如何选择包含已选中复选框的无序列表中的所有列表项?

时间:2012-09-20 21:43:44

标签: jquery

我有'ul > li'来获取所有列表项,但我只需要抓取包含已选中复选框的项目。

所以你可以直观地看到它,它看起来像这样:

<ul>
    <li>
        <input type="checkbox" checked="checked">
    </li>
    <li>
        <input type="checkbox">
    </li>
    <li>
        <input type="checkbox" checked="checked">
    </li>
</ul>

我想拉第1和第3项。

提前致谢。

所以,我有

3 个答案:

答案 0 :(得分:6)

您可以使用:has选择器。

$('ul li:has(input[type=checkbox]:checked)')

答案 1 :(得分:5)

为什么不倒退并从检查输入开始

$('input[type=checkbox]:checked').parent()

http://jsfiddle.net/N7VFc/

如果您需要上下文以防页面中有其他复选框,您可以在选择器中指定它

$('input[type=checkbox]:checked','ul li').parent()

答案 2 :(得分:4)

这是您问题的解决方案:http://jsfiddle.net/H4qba/1/

HTML code:

<ul>
  <li><input type="checkbox" checked="checked" />a</li>
  <li><input type="checkbox"/>b</li>
  <li><input type="checkbox"/>c</li>
  <li><input type="checkbox"/>d</li>
  <li><input type="checkbox" checked="checked" />e</li>
  <li><input type="checkbox" checked="checked" />f</li>
</ul>

jQuery代码:

$('ul > li').has('input[checked="checked"]').css({border:'1px solid #c00'});