Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery没有';t无法正确计算其父元素中的元素_Jquery - Fatal编程技术网

jQuery没有';t无法正确计算其父元素中的元素

jQuery没有';t无法正确计算其父元素中的元素,jquery,Jquery,我正在创建一个手风琴菜单,在选中所有复选框后显示下一项 它在第一步工作,但是一旦它通过了手风琴菜单中的第一项,它就不能正确地计算复选框的数量 这就是我目前所拥有的。。。我在中留下了警报,以便您可以查看它正在查找的复选框的数量 这真的很难解释,所以您必须亲自看看问题所在。只需将parent(“dd”)替换为parent() 您需要使用.closest(),而不是.parent(),因为不是复选框的直接父项(此在单击处理程序中设置为什么) e、 g 也可以考虑使用 s来检查复选框文本,将它们的代码

我正在创建一个手风琴菜单,在选中所有复选框后显示下一项

它在第一步工作,但是一旦它通过了手风琴菜单中的第一项,它就不能正确地计算复选框的数量

这就是我目前所拥有的。。。我在中留下了警报,以便您可以查看它正在查找的复选框的数量

这真的很难解释,所以您必须亲自看看问题所在。

只需将
parent(“dd”)
替换为parent()


您需要使用
.closest()
,而不是
.parent()
,因为
不是复选框的直接父项(此
在单击处理程序中设置为什么)

e、 g


也可以考虑使用<代码> <代码> s来检查复选框文本,将它们的<>代码> < /COD>属性设置为复选框的ID(当然,您需要给每个复选框一个唯一的ID)。这允许用户单击文本切换复选框,也允许屏幕阅读器等辅助功能技术了解该复选框的说明。

始终在问题本身中输入相关代码和标记,而不仅仅是链接。或者使用
parents('dd')
或者(最好)保持html的一致性
        available = $(this).parent().children('input[type=checkbox]').length;
        checked = $(this).parent().children('input[type=checkbox]:checked').length;
$('input[type=checkbox]').on('change', function(){
      available = $(this).closest('dd').find('input[type=checkbox]').length;
      checked = $(this).closest('dd').find('input[type=checkbox]:checked').length;

      // ...
});