以下 javascript 和 jquery 代码有两个问题。 jquery 每个循环只迭代一次,它获取具有正确 ID 的第一个元素,执行它需要执行的操作并停止。
第二个问题是,当我在代码中使用每个函数内的 else 时,它甚至不会尝试下一个 if,它只是在那里退出。 我可能做了一些根本性的错误,但是从jquery的每个函数以及我对其他函数的期望来看,我没有看到它。
Javascript代码:
var $checkVal;
var $checkFailed;
$("#compliance").live("keypress", function (e) {
if (e.which == 10 || e.which == 13) {
var checkID = $(this).parents('td').next().attr('id');
var checkVal = $(this).val();
$('#' + checkID).each(function () {
var cellVal = $(this).text();
if (checkVal == cellVal) {
$(this).removeClass("compFail").addClass("compOk");
} else {
$(this).removeClass("compOk").addClass("compFail");
var checkFailed = True;
}
});
if (checkFailed == 'True') {
(this).addClass("compFail");
} else {
(this).addClass("compOk");
}
}
});
如何让每个循环迭代每个元素的所有实例,并将 id 分配给变量 checkID,并让代码在 else 之后继续,以便它可以执行最后一个 if?
最佳答案
id
应该在页面上仅出现一次。如果您希望多个元素具有相同的 id,请使用 class
,而不是 id
。
您的 each
仅循环迭代一次,因为您是按 id
选择的,因此您仅选择页面中的一个元素。如果您将元素更改为class
,它应该像您期望的那样工作。
关于javascript - jquery 每个循环只循环一次,如果使用 else 代码停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15361255/