2012-02-17 63 views
0

我試圖選擇元素之後的元素在工作和檢索其類,但我保持未定義錯誤 這是HTML接近中選擇元素,以當前元素

<div class="clearfix"> 
        <input type="text" name="username" placeholder="Username" /><span class="form-validation-status"></span> 
       </div> 

這是JavaScript

$(document).ready(function() { 
    var username_field = $("input[name='username']"); 
    var email_field = $("#_email"); 
    var host_url = "http://localhost/ur/"; 
     //Check if the username is already in use 
     username_field.blur(function() { 
      var _username = username_field.val(); 
      var uri = host_url+"accounts/signup/is_username_exist/"+_username; 
      $.ajax({ 
       url:uri, 
       type:'GET', 
       dataType:'json', 
       success:function(data) { 
            var test = $(this).closest("span").attr("class"); 
            alert(test); 
       } 
      }); 
}); 

它不斷提醒如不確定什麼做錯了嗎?

回答

3

你想用next()closest()

在成功處理程序

而且$(this)data,需要以有獲取它的變量定義更早。

var $theSpan = $("input[name='username']").next(); 
alert($theSpan.attr('class')); 

應該這樣做。

+0

+1指出什麼_this_值是指出了「$(本)」 – 2012-02-17 08:57:39

+0

@Johan感謝。 – MrFoh 2012-02-17 09:07:19

0

最近()向上搜索DOM樹,嘗試使用next()

1

使用.siblings()

username_field.siblings('.form-validation-status'); 

說明:獲取每個元素的兄弟姐妹在匹配的元素,可以通過選擇器進行過濾。

您也可以使用.next(),但它意味着您搜索的元素是下一個元素,所以如果它放在之前它將會中斷。