jQuery Validate:按类遍历特定元素

时间:2012-03-27 07:30:26

标签: jquery validation

希望是一个简单的问题:

$(document).ready(function(){
    $("#regform").validate({
        errorPlacement: function (error, element) {
            $(element).parent().next().next().hide();    //works
            $(element).parent().next('div.test').hide(); //doesn't work 
        }           
    });
});


<form id="regform">
    <div class="field">
        <input name="username" id="username" type="text" class="text required" />
    </div>
    <div class="dummy">
        &nbsp;
    </div>  
    <div class="test">
        Hide this text
    </div>
</form>

我正在尝试使用“test”类来获取div以隐藏验证错误。遍历逐个工作,但包括选择器不起作用。

有人能告诉我我做错了吗?

感谢。

2 个答案:

答案 0 :(得分:1)

siblings()一起,您可以使用nextAll()

$(element).parent().nextAll('.test:first').hide();

JS Fiddle proof of concept

这种方法的优点是nextAll()只能看到以后的兄弟姐妹,而siblings()看起来都是双向的。我将选择仅限于:first匹配的元素,因为我认为,如果你想特别隐藏,那么它只是你想要隐藏的第一个项。

答案 1 :(得分:0)

这将隐藏直接嵌套在表单

中的所有.test元素
$("#username").parent().siblings(".test").hide();