Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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
Javascript 为什么执行没有进入$(';input[type=";checkbox";]';)中。每个?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么执行没有进入$(';input[type=";checkbox";]';)中。每个?

Javascript 为什么执行没有进入$(';input[type=";checkbox";]';)中。每个?,javascript,jquery,Javascript,Jquery,第一次使用$('input[type=“checkbox”])。每个函数。这是从firefox调试器获取的快照 在左边是代码。在右边是带有输入复选框元素数组值的监视窗口。执行从第4行跳到第7行,如果数组为空怎么办 有人能告诉我为什么执行没有进入循环吗?循环已经执行。你可以在工具提示中看到数组中有140个实体。问题是因为它们都未定义 这是因为jQuery对象没有id属性。您需要使用prop()或This.id从元素中获取该属性: if (this.value) ids.push(this.id

第一次使用
$('input[type=“checkbox”])。每个
函数。这是从firefox调试器获取的快照

在左边是代码。在右边是带有输入复选框元素数组值的监视窗口。执行从第4行跳到第7行,如果数组为空怎么办


有人能告诉我为什么执行没有进入循环吗?

循环已经执行。你可以在工具提示中看到数组中有140个实体。问题是因为它们都
未定义

这是因为jQuery对象没有
id
属性。您需要使用
prop()
This.id
从元素中获取该属性:

if (this.value)
  ids.push(this.id);
也就是说,您可以使用
map()
来构建数组,而不是
each()
,从而使代码更加简洁:


最后请注意,这将检索所有复选框,无论它们是否被选中。您可能希望在选择器中包含
:checked

为了将来参考,请包含实际代码,而不是它的屏幕截图。它正在执行。您无法像JQuery中那样获取
id
。请使用var id=$(this).attr('id);非常感谢Rory!你的答案非常具有说明性。我不知道如何将其标记为已接受。只需单击+1。没问题,很乐意提供帮助。要接受答案,请单击计票下方的绿色勾号
$('#seguent').on('click', function() {
  var ids = $(':checkbox').map((i, el) => el.value ? el.id : null);
  $.post('llista_cursos', { ids: ids });
});