我正在尝试检查页面并找到没有图像的div,并相应地更改该div中元素的类。页面是动态生成的,所以我需要检查每个元素。代码本身适用于影响所有div,但我需要检查每个div,只影响带图片的那些。
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');
};
});
答案 0 :(得分:4)
您不需要if语句:
$(".container:has(img) .arrow").addClass("classone");
或者你可以尝试这个版本:
$(".container").filter(":has(img)").find(".arrow").addClass("classone");
答案 1 :(得分:1)
尝试:
$('.container').each(function(){
if ($(this).has("img")){
$('.arrow',this).addClass('classone');
};
});
$(this).find('.arrow').addClass('classone');
也可以使用
答案 2 :(得分:0)
根据我的理解,它应该可以正常工作如果你只是改变
$('.arrow').addClass('classone');
到
$('.arrow', this).addClass('classone');
或尝试使用.has,如下所示
$('.container').has('img').find('arrow').addClass('classone');
答案 3 :(得分:0)
这应该可以解决问题:
$('.container').each(function(){
if ($("img", this).length > 0){
$('.arrow', this).addClass('classone');
};
});