javascript - jquery 每个循环只循环一次,如果使用 else 代码停止

标签 javascript jquery

以下 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/

相关文章:

javascript - 按钮的简单 JavaScript 代码在任何浏览器中都不起作用

javascript - JavaScript 中的局部作用域是什么?本地范围与功能范围有何不同?

php - 如何让 mysql id 出现在链接上?

jQuery 添加类到动态菜单

javascript - 过滤导致显示的数据过多

javascript - jQuery 更改 <img> 标签的来源

javascript - 在 HTML 和 Javascript 中创建和更新图表

javascript - 按数据属性显示列表中的前三项

javascript - 如何使用 JavaScript 检查用户当前是否在页面上?

php - 通过 jQuery Ajax 将文件(图像)上传到服务器时遇到问题