我有几个要素。它们在页面上的数量不断变化,请记住这一点。
该元素名为 .portalimg 。我需要说明width > height
是否将width
设置为125px。如果是height > width
,请将height
设置为125px。
这就是我所拥有的:
$('.portalimg').each(function() {
var pimgw = $(this).width();
var pimgh = $(this).height();
if (pimgw > pimgh) {
$(this).css('width','125px')
} else {
$(this).css('height','125px')
}
});
编辑:它提醒成功但不适用width
& height
。
我哪里出错了?
编辑2:从下面更清楚地更新了代码。这仍然只限制高度属性,即使图像更高然后它是宽的。看看:
http://jacksongariety.com/gundoglabs/
编辑3:问题是他们都返回0.如果我有一个警告说pimgw或pimgh的值,它总是为0。
编辑4:最后通过缓存得到了最好,最干净的代码,它总是正确加载,即使它从缓存中绘制图像:
$(function(){
$('.portalimg').ready(function(){
$('.portalimg').fadeTo(0,1).each(function(index) {
var a = $(this);
if (img.width() > a.height()) {
a.css('width','135px')
} else {
a.css('height','125px')
}
});
});
});
答案 0 :(得分:2)
如果portalimg类有多个元素,你可以简单地使用.each迭代器:http://api.jquery.com/each/
$(function() {
$('.portalimg').each(function(index) {
var img = $(this);
if (img.width() > img.height()) {
img.css('width','125px')
} else {
img.css('height','125px')
}
});
}
答案 1 :(得分:2)
$('.portalimg').each(function() {
var pimgw = $(this).width();
var pimgh = $(this).height();
if (pimgw > pimgh) {
$(this).css('width','125px')
} else {
$(this).css('height','125px')
}
});
答案 2 :(得分:1)
这个怎么样:
$('.portalimg').each(function() {
(($(this).width() > $(this).height())
&& ($(this).css('width','125px')) )
|| ($(this).css('height','125px'))
});
答案 3 :(得分:0)
您的循环错误,您应该使用
pimg = $('.portalimg').each( function() {;
alert("success")
var pimgw = $(this).width();
var pimgh = $(this).height();
if (pimgw > pimgh) {
$(this).css('width','125px')
} else {
$(this).css('height','125px')
}
});
这将在所有查找对象上调用一个函数,文档中包含“.portalimg”类。
答案 4 :(得分:0)
可以试试这个。其他答案非常好。你和for和body的语法出了问题。你的意思是#body还是.body?
$(".portalimg").each(function(){
var pimgw = $(this).width(),
pimgh = $(this).height();
if (pimgw > pimgh) {
$(this).css('width','125px')
}else{
$(this).css('height','125px')
}
});
答案 5 :(得分:0)
$('.portalimg').each(function() { var
img = $(this),
w = img.width(),
h = img.height(),
toModify = w > h ? 'width' : 'height';
img.css(toModify, '125px');
}