2013-10-23 73 views
0

對不起,我需要再次問這個,因爲我有一段代碼,但我失去了它。jQuery的高度/寬度,如果語句

有誰能告訴我爲什麼這沒有效果?

$(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"}); 
     } 
    }); 
} 
}); 

想法是看圖像組,比較寬度和高度,如果圖像比它寬,它會消失。

謝謝。

+0

我認爲我的最後一個職位有一個正確的答案,但用戶認爲帖吧刪了。或者是... – user2912472

+1

您可能只需刷新頁面。他的回答仍然是你以前的問題。 – Andrew

+1

[jquery height/width if statement not working]可能的重複(http://stackoverflow.com/questions/19548462/jquery-height-width-if-statement-not-working) – lifetimes

回答

2

傳遞給each()回調的元素是原始DOM元素,而不是jQuery對象。

要調用像height()width()這樣的jQuery方法,您需要使用$()創建一個jQuery對象。

如果您在運行代碼時查看它,瀏覽器的錯誤控制檯會試圖告訴您這一點。

1

試試這個..你需要一個jQuery對象元素來包裝你的項目參考:

$(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"}); 
       } 
     }); 
    } 
}); 

..

UPDATE:使用遍歷每個

怎麼樣( )方法:

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()方法

+0

的副本不運氣:(圖片仍然顯示,但仍然很好的建議。謝謝 – user2912472

+0

@ user2912472我用另一種方法更新了答案 –