当前行中的jquery removeClass

当前行中的jquery removeClass,jquery,Jquery,我在表格的最后一个单元格中有“编辑”按钮。当我点击它时,我正在验证输入,如果出现问题,我正在向必要的输入添加错误类。当用户将更正错误并再次按下编辑按钮时,我想删除当前行的错误类。但并不是所有人都这么认为。如何操作?在单击处理程序中: $(this).closest('tr').removeClass('errorClass'); 或者如果它来自“输入”元素: $(this).closest('tr').find(':input').removeClass('errorClass'); 在单击

我在表格的最后一个单元格中有“编辑”按钮。当我点击它时,我正在验证输入,如果出现问题,我正在向必要的输入添加错误类。当用户将更正错误并再次按下编辑按钮时,我想删除当前行的错误类。但并不是所有人都这么认为。如何操作?

在单击处理程序中:

$(this).closest('tr').removeClass('errorClass');
或者如果它来自“输入”元素:

$(this).closest('tr').find(':input').removeClass('errorClass');
在单击处理程序中:

$(this).closest('tr').removeClass('errorClass');
或者如果它来自“输入”元素:

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

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

$("selector_for_table tr input[name=edit]").click(function() {
    var row = $(this).closest('tr');
    if (everythingIsValid()) {
        row.removeClass('invalid');
    }
    else {
        row.addClass('invalid');
   }
});
用于查找单击按钮的第一个父元素,即
tr

…尽管如果您使用的是最新的jQuery,您可能会看到:

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

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

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

$("selector_for_table tr input[name=edit]").click(function() {
    var row = $(this).closest('tr');
    if (everythingIsValid()) {
        row.removeClass('invalid');
    }
    else {
        row.addClass('invalid');
   }
});
用于查找单击按钮的第一个父元素,即
tr

…尽管如果您使用的是最新的jQuery,您可能会看到:

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

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

能否显示行/表的片段?我的第一反应是使用
.closest()
并获取
,然后返回树并从树中查找输入元素,但没有看到我只是猜测的代码。你能给我们看一个行/表的片段吗?我的第一反应是使用
.nexist()
并获取
,然后返回树并从树中查找输入元素,但没有看到我只是猜测的代码。
.nexist('row')
应该是
。nexist('tr')
removeClassName/addClassname
应该是
removeClass/addClass
;o) @patrick:谢谢。我不把东西看一遍得到的东西。:-)@艾姆洛维吉:当然@T.J.:没问题。主要是想确保OP知道o)
最近('row')
应该是
最近('tr')
removeClassName/addClassname
应该是
removeClass/addClass
;o) @patrick:谢谢。我不把东西看一遍得到的东西。:-)@艾姆洛维吉:当然@T.J.:没问题。主要是想确保OP知道o) 您的代码做到了:-)$(con).closest('tr').find('input-validation-error').removeClass('input-validation-error');您的代码做到了:-)$(con).closest('tr').find('input-validation-error').removeClass('input-validation-error');