尝试在元素工作后选择元素并检索其类,但我保留未定义的错误 这是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);
}
});
});
它保持警惕,因为未定义出错了什么?
答案 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()