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 });
});