我有这样的事情:
var windowH = $(window).height();
var listH = $(".list").height();
if(windowH > listH){
$(".list").css({'height': windowH+'px'});
alert(windowH);
alert($(".list").css({'height': windowH+'px'}));
}
第二个警报给了我[object Object]
,因此没有插入正确的CSS。有人可以帮忙吗?
由于
答案 0 :(得分:3)
对$(el).css(propertyName, value)
的调用会返回您正在使用的元素。
这样你可以链接功能。
$(".list").css(propertyName, value).css(propertyName, value).remove(); // etc etc.
windowH
很可能是一个数字,如果您需要windowH.toString() + 'px'
之类的内容,请尝试"600px"
。
答案 1 :(得分:3)
.css
方法返回jQuery对象(For方法链接),因此警报结果没有错。
不要使用.css
,请尝试使用.height
方法。
$(".list").height(windowH);
答案 2 :(得分:1)
使用此:
alert( $(".list").css('height') );
当您使用代码中的键/值对映射调用.css()
方法时,它会假设您正在尝试设置这些CSS属性,并返回jQuery对象调用它(alert()
非常正确地显示为"[object Object]"
)。这就是为什么你可以在.css({...})
之后链接其他jQuery方法。
如果你只使用我上面显示的特定属性的名称来调用.css()
,那么它会返回该属性的值,以便在alert()
内工作。 (注意,如果你的jQuery对象有多个元素,即如果".list"
匹配多个元素,.css('height')
只返回第一个元素的高度值。)
编辑:请注意,.css()
方法中的此行为与可用于设置和获取“某些内容”的其他jQuery方法相同,例如.val()
,.html()
,.prop()
等。当使用设置值的参数调用时,这些方法都返回一个jQuery对象,但是当使用参数调用 get 一个值时,它们全部返回适当的值。
答案 3 :(得分:0)
首先,您必须设置属性,然后提醒相应的值。 ..
试
var windowH = $(window).height();
var listH = $(".list").height();
if(windowH > listH){
$(".list").css({'height': windowH+'px'});
alert(windowH);
$(".list").css('height', windowH+'px');
alert(listH);
}