选中除特定元素的最后一个之外的所有复选框

时间:2016-06-23 14:46:39

标签: javascript jquery selector

我想检查特定元素的所有复选框是否都被选中但是最后一个 我有这种HTML

if($(".progress-indicator > li:first-child").find(":checkbox").length == $(".progress-indicator > li:first-child").find(":checkbox:checked").length)
{
   //All checkbox of first li are checked
}

我首先尝试了

li

这是有效的,但现在我要排除第一个$(".progress-indicator > li:first-child").find(":checkbox:not(:last-child)").length

的最后一个复选框

所以我从那开始

li

但它没有用。此选择器仅选择第一个Others elements的第一个复选框。我认为这是由于我之前的div。 (该复选框位于另一个元素内的li内。

那么,如何选择第一个li的所有复选框,除了最后一个复选框 OF 这个alertdialog.setCancelable(false)

4 个答案:

答案 0 :(得分:0)

DO,

var last = $(".progress-indicator >li:first-child").find(":checkbox:last");

所以你的陈述将是

if($(".progress-indicator > li:first-child").find(":checkbox").not(last).length == $(".progress-indicator > li:first-child").find(":checkbox:checked").not(last).length)
{
  //All checkbox of first li are checked, regardless of the last one
}

答案 1 :(得分:0)

您可以使用带有负数的eq& not选择器省略最后一个元素

var x=$("input:checkbox").not(":eq(-1)");
x.each(function(){ // this part just for demo
$(this).prop("checked",true)
})

JSFIDDLE

答案 2 :(得分:0)

我会使用jQuery的每个函数来遍历复选框。我会排除最后一个。

这样的事情:



$checkboxes = $('.checkbox')
lengthCheckboxes = $checkboxes.length;

$checkboxes.each(function(i,e) {
	if (i !== lengthCheckboxes - 1) 
		$(e).prop( "checked", true );
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li>
    //Others elements (variable)
    <input class="checkbox" type="checkbox">
    <input class="checkbox" type="checkbox">
    <input class="checkbox" type="checkbox">
    <input class="checkbox" type="checkbox"> // Exclude this one
  </li>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

这可以解决问题。

$('.progress-indicator input[type="checkbox"]').not(':last-child').each(function(){
    $(this).prop("checked", true);
});

亲切的问候。