2012-03-27 108 views
0

希望一个简单的问题,运行到特定的元素:jQuery验证:通过

$(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> 

我试图获得与一流的“测试”,以隐藏在验证错误的股利。遍历一个接一个的作品,但包含选择器不起作用。

谁能告诉我什么,我做错了什么?

谢谢。

回答

1

随着siblings()你可以使用nextAll()所有。测试内容:

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

JS Fiddle proof of concept

这种方法的好处是, nextAll()只看到后面兄弟姐妹,而siblings()看起来双方。我将选择范围限制为只匹配:first,因为我认为如果您想特别隐藏它,那只是您想要隐藏的第一个项目。

+0

完美。谢谢。 :) – 2012-03-27 07:52:27

+0

你绝对欢迎;我很高兴得到了帮助! =) – 2012-03-27 15:31:52

0

这将隐藏直接嵌套形式

$("#username").parent().siblings(".test").hide();