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'}));
    }

2 番目のアラートが[object Object]表示されるため、正しい CSS が挿入されません。誰かが助けることができますか?

ありがとう

4

4 に答える 4

3

を呼び出すと$(el).css(propertyName, value)、作業中の要素が返されます。

これは、関数を連鎖できるようにするためです。

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

windowHwindowH.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 プロパティを設定alert()しようとしていると見なされ、呼び出した jQuery オブジェクトが返されます (これは として正しく表示されます"[object Object]")。そのため、 の後に他の jQuery メソッドをチェーンできます.css({...})

.css()上記のように特定のプロパティの名前だけで呼び出すと、そのプロパティの値が返されるため、 alert(). (ただし、jQuery オブジェクトに複数の要素がある場合、つまり、".list"複数の要素に一致する場合.css('height')は、最初の要素のみの高さの値を返すことに注意してください。)

編集: メソッドでのこの動作は、、 、 など.css()の「何か」の設定と取得の両方に使用できる他の jQuery メソッドと同じであることに注意してください。値を設定するパラメーターで呼び出されると、これらのメソッドはすべて jQuery を返します。オブジェクトですが、値を取得するパラメータで呼び出されると、それらはすべて適切な値を返します。.val().html().prop()

于 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 に答える