jquery .css()返回对象对象?

时间:2012-10-24 05:11:19

标签: javascript jquery css ajax object

我有这样的事情:

    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 个答案:

答案 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);
}