2012-03-27 145 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();