遍历DOM并删除一个类

时间:2013-02-08 23:38:20

标签: jquery dom dom-traversal

我在页面上有几个表单,每个表单都有自己的“消息框”,显示验证错误。每个“消息框”都有一个关闭按钮。我没有问题让关闭按钮关闭“消息框”但我还需要它从违规文本输入中删除类“错误”。页面内容由ajax引入,因此是“.on”

伪HTML(请记住,在任何时候,其中8个都包含在自己的表单标签中,消息框和关闭按钮是其中的一部分。

<form action="#" method="post" id="Form6">
    <ul>
        <li>
            <label for="foo">label</label>
            <input type="text" name="foo" id="foo">
            <input type="submit" id="Button6" value="submit" />
        </li>
    </ul>
    <div id="Msg6" class="error"><a class="close">X</a><ul></ul></div>
</form>

我的尝试

$('body').on('click', 'a.close', function(){
    $(this).parent().fadeOut("fast");
    $(this).closest('input[type="text"].error').removeClass('error'); // doesn't work
    $('a.close').closest('ul > li > input.error').remove();// doesn't work
    //console.log($.closest('input[type="text"].error'));//tring to log the value of the ancestor
});

1 个答案:

答案 0 :(得分:1)

这应该有效:

$(this).parents('form').find('input.error').removeClass('error');

但是如果你想删除它,不需要更改类,只需使用.remove() ...