2011-10-15 25 views
1

我想檢查在var span得到的id之間,如果它之間是空的放置css輸入但它不工作。如何解決它?我想檢查'id`是否沒有內容

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/

+3

而不是做一切這個字符串連接,你可以這樣做:'var span = $('。valid')。closest('。auto_box')。find('span'); if(span.is(':empty')){...}'。 –

回答

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/

相關問題