jquery高度/宽度if语句

时间:2013-10-23 18:34:57

标签: jquery html css

很抱歉,我需要再次提出这个问题,因为我有一段工作代码,但我丢失了它。

有谁能告诉我为什么这没效果?

$(window).load(function (){
var imgs = $('.boxInner img');

if (imgs.length){
    $.each(imgs, function (index, item){
        var w = item.width(),
            h = item.height();

        if (w < h) { 
            item.css({display: "none"}); 
        }
    });
}
});

想法是看一组图像,比较宽度和高度,如果图像比它宽,它就会消失。

感谢。

2 个答案:

答案 0 :(得分:2)

传递给each()回调的元素是原始DOM元素,而不是jQuery对象。

要调用height()width()等jQuery方法,您需要使用$()创建一个jQuery对象。

如果您在运行代码时查看它,浏览器的错误控制台会尝试告诉您。

答案 1 :(得分:1)

试试这个..你需要在jQuery Element对象中包装你的项目引用:

$(window).load(function (){
    var imgs = $('.boxInner img');

    if (imgs.length){
         $.each(imgs, function (index, item){
              var w = $(item).width(),
                  h = $(item).height();

              if (w < h) { 
                  $(item).css({display: "none"}); 
              }
         });
    }
});

...

<强>更新

如何使用遍历 each()方法:

http://api.jquery.com/each/

$(window).load(function (){
    var imgs = $('.boxInner img');

    if(imgs.length !== 0){
        imgs.each(function(index, item){

            var $item = $(item),
                w = $item.width(),
                h = $item.height();

            if (w < h) { 
                $item.hide(); 
            }
        });
    }

});

尝试以上..它还确保长度不等于零,并且只使用jQuery hide()方法