2012-03-15 43 views
2

我試圖檢查頁面並找到沒有圖像的div,並相應地更改該div內元素的類。該頁面正在動態生成,所以我需要檢查每個元素。代碼本身適用於影響所有的div,但我需要檢查每一個,並且隻影響與圖片。使用jQuery檢查元素的每個div並應用「if」語句

的HTML:

<div class="container"><img width="695" height="519" src="pic123.jpg" /><div class="arrow"></div><!--arrow--></div><!--container--> 
<div class="container"><div class="arrow"></div><!--arrow--></div><!--container--> 

jQuery的:

$('.container').each(function(){ 
if ($(this).has("img")){ 
$('.arrow').addClass('classone'); 
}; 
}); 

回答

4

你不需要if語句:

$(".container:has(img) .arrow").addClass("classone"); 

或者你可以嘗試這個版本:

$(".container").filter(":has(img)").find(".arrow").addClass("classone"); 
+0

作品!真棒!謝謝凱文! – brock2621 2012-03-15 18:02:27

0

從我的理解,它應該正常工作,如果你只需要改變

$('.arrow').addClass('classone');

$('.arrow', this).addClass('classone');

或低於使用.has嘗試,

$('.container').has('img').find('arrow').addClass('classone'); 
0

這應該訣竅:

$('.container').each(function(){ 
    if ($("img", this).length > 0){ 
     $('.arrow', this).addClass('classone'); 
    }; 
}); 
1

嘗試:

$('.container').each(function(){ 
    if ($(this).has("img")){ 
     $('.arrow',this).addClass('classone'); 
    }; 
}); 

$(this).find('.arrow').addClass('classone');將工作太