选择靠近当前元素的元素

时间:2012-02-17 08:48:26

标签: jquery html

尝试在元素工作后选择元素并检索其类,但我保留未定义的错误 这是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 个答案:

答案 0 :(得分:3)

您想使用next()而不是closest()

成功处理程序中的$(this)引用data,您需要先提前定义变量才能在那里获取变量。

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

应该这样做。

答案 1 :(得分:1)

使用.siblings()

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

描述:获取匹配元素集中每个元素的兄弟元素,可选择由选择器进行过滤。

你也可以使用.next(),但它暗示你搜索的元素是下一个元素,所以如果放在它之前就会中断。

答案 2 :(得分:0)

Closest()搜索dom树,尝试使用next()