我想在条件为真时取出两个结果,所以我为它做了小函数但是当条件为真时只出现第一个结果。我设置了高度和宽度属性,因为当src为空时,即显示图像框,如果我将高度和宽度属性留空,即取高度和宽度1像素。
$(function () {
if ($('img.offerProduct').attr('src') == false) {
$('.offerProduct').removeClass('offerProduct');
$('.offerProduct').attr({width:'0', height:'0'})
}
}
)
<body>
<img src="" width="60" height="60" class="offerProduct" />
</body>
答案 0 :(得分:3)
attr()
方法仅获取匹配集中第一个元素的属性。要使用班级offerProduct
处理所有图片,您应该使用each()
方法:
$(function () {
$('img.offerProduct').each(function() {
if($(this).attr('src') == false) {
$('.offerProduct').attr({width:'0', height:'0'}).removeClass('offerProduct')
}
}
});
答案 1 :(得分:1)
您正在从图片元素中删除“offerProduct”类。在下面的行中,您将使用刚刚删除的类“offerProduct”在元素上设置属性。所以第二个选择器将返回一个空对象。
您可以更好地使用jquery命令的链接:
$('.offerProduct').removeClass('offerProduct').attr({width:'0', height:'0'})
请参阅以下工作示例:http://jsfiddle.net/assZV/
但是,也许最好在图像不存在时删除整个元素?你可以使用属性选择器立即找到没有src的每个图像:
$(function () {
$('img.offerProduct[src=""]').hide();
});