当前行中的jquery removeClass

时间:2010-12-27 15:08:02

标签: jquery

我在表格的最后一个单元格中有编辑按钮。当我点击它时,我正在验证输入是否出现问题我正在为必要的输入添加错误类。当用户纠正错误并再次按下编辑按钮时,我想删除当前行的错误类。但不是从所有行。怎么做?

2 个答案:

答案 0 :(得分:2)

在点击处理程序中:

$(this).closest('tr').removeClass('errorClass');

或者如果它来自'input'元素:

$(this).closest('tr').find(':input').removeClass('errorClass');

答案 1 :(得分:1)

您的编辑按钮点击处理程序可能如下所示:

$("selector_for_table tr input[name=edit]").click(function() {
    var row = $(this).closest('tr');
    if (everythingIsValid()) {
        row.removeClass('invalid');
    }
    else {
        row.addClass('invalid');
   }
});

使用closest查找点击按钮的第一个父元素tr

...如果你使用的是最新的jQuery,你可能会考虑delegate

$("selector_for_table").delegate('input[name=edit]', 'click', function() {
    var row = $(this).closest('tr');
    if (everythingIsValid()) {
        row.removeClass('invalid');
    }
    else {
        row.addClass('invalid');
   }
});

...如果行是动态的(例如,如果添加或删除它们)。 delegate只是在父元素上设置一个处理程序,然后监视要冒泡的事件。如果它看到事件,并且事件的source元素与给定的选择器匹配,则它会触发处理程序。