【发布时间】:2011-09-30 11:17:57
【问题描述】:
这有什么区别:
$.each($('#myTable input[name="deleteItem[]"]:checked').do_something());
还有这个:
$('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something });
被选中和操作的表格单元格的 html 如下所示:
<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="' . $rowItem['itemID'] . '" /></td>
我已经阅读了 jQuery 文档,但我仍然不明白其中的区别。 (是我还是那个文档有时在内容清晰度上有点“模糊”?)
添加信息:
显然我尝试一个通用的例子让人们感到困惑!连同第一个示例中的(以前)缺少的括号。 :(
第一个示例来自我的代码中的一行,它删除了任何带有选中复选框的行的
:$.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove());
第二个示例来自我查看#classesTable 中所有选中的复选框并在下拉列表中删除其匹配项的情况。
$('#classesTable input[name="deleteClasses[]"]:checked').each(function(){
$('#classesList option[value="' + $(this).attr('value') + '"]').remove();
});
我知道他们做了两件不同的事情,但我不能说“我需要在这种情况下使用 $.each() 而在另一种情况下使用 .each(function() {})案例。
它们可以互换吗?仅在某些情况下?从来没有?
【问题讨论】:
-
您的第一个代码示例缺少右括号。
-
注释和逗号,示例见我的回答。
-
第一个例子的意图可以用几种不同的方式来解释。请更正它以反映您实际在做什么。
-
我在行尾添加了缺少的右括号,就在分号之前。