jquery如果条件?

时间:2012-03-21 06:24:52

标签: jquery html

我想在条件为真时取出两个结果,所以我为它做了小函数但是当条件为真时只出现第一个结果。我设置了高度和宽度属性,因为当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>

2 个答案:

答案 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();
});