我希望检查进入var span
的ID,如果它之间是空的,则将css输入但不起作用。怎么能解决它?
var span = '#'+$('.valid').closest('.auto_box').find('span').attr('id');
if ($(span+':empty').length != 0) {
//alert('ok')
(this).closest('.auto_box').find('input').css('background-color','#000');
}
请在此处查看我的完整代码:http://jsfiddle.net/Pjqv2/2/
答案 0 :(得分:1)
您正在使用(this)
代替$('.valid')
或其他任何意思。而且,你这样做是错误的; .find('span')
返回为该范围设置的jQuery对象。
您无需获取ID,然后再次检查该ID。 更重要的是,您的代码似乎需要在.auto_box
的多个实例上运行。为此,您需要迭代(".valid").closest(".auto_box")
找到的集合,您可以使用jQuery .each()
(.each() in jQuery docs)执行此操作:
var autoBoxes = $(".valid").closest(".auto_box");
autoBoxes.each(function(){
if ($(this).find("span").is(":empty")) {
$(this).find("input").css("background-color", "#000");
}
});
您使用此脚本更新了jsfiddle:http://jsfiddle.net/dvir_azulay/Pjqv2/4/
答案 1 :(得分:0)
将(this)
更改为$(span)
。 I updated your fiddle反映这一变化。