0

我有这样的事情:

    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。有人可以帮忙吗?

谢谢

4

4 回答 4

3

调用$(el).css(propertyName, value)返回您正在使用的元素,。

这样您就可以链接功能。

$(".list").css(propertyName, value).css(propertyName, value).remove(); // etc etc.

windowH很可能是一个数字,windowH.toString() + 'px'如果你想要类似"600px".

于 2012-10-24T05:14:24.033 回答
3

.css方法返回 jQuery 对象(用于方法链接),因此警报结果没有错。

而不是使用.css,尝试使用.height方法。

$(".list").height(windowH);
于 2012-10-24T05:14:27.453 回答
1

用这个:

alert( $(".list").css('height') );

当您.css()使用代码中的键/值对映射调用该方法时,它假定您正在尝试设置这些 CSS 属性,并返回您调用它的 jQuery 对象(alert()完全正确地显示为"[object Object]")。这就是为什么你可以在.css({...}).

如果您.css()只使用我上面显示的特定属性的名称进行调用,那么它会返回该属性的值,以便在alert(). (请注意,如果您的 jQuery 对象有多个元素,即如果".list"匹配多个元素,.css('height')则仅返回第一个元素的高度值。)

编辑:请注意,该.css()方法中的此行为与其他 jQuery 方法相同,这些方法可用于设置和获取“某物”,如.val(), .html(),等。当使用设置.prop()值的参数调用时,这些方法都返回一个 jQuery对象,但是当使用获取值的参数调用时,它们都会返回适当的值。

于 2012-10-24T05:17:52.240 回答
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);
} 
于 2012-10-24T05:22:25.717 回答