很抱歉,我需要再次提出这个问题,因为我有一段工作代码,但我丢失了它。
有谁能告诉我为什么这没效果?
$(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 :(得分: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()方法:
$(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()方法