我在表格的最后一个单元格中有编辑按钮。当我点击它时,我正在验证输入是否出现问题我正在为必要的输入添加错误类。当用户纠正错误并再次按下编辑按钮时,我想删除当前行的错误类。但不是从所有行。怎么做?
答案 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元素与给定的选择器匹配,则它会触发处理程序。