0

次のようなHTMLコードにいくつかの要素があります。

<DIV id="slideshow-container">
    <DIV id="slideshow">
        <ul>
            <li>...</li>
            <li>...</li>
            <li>...</li>
        </ul>
    </DIV>
</DIV>  

次に、li 要素を取得し、その幅を jquery で設定します。しかし、私のコードは機能しません。
以下は私のコードです:

var slides = $('#slideshow li');
var w=$('#slideshow').width();

for(var j=0;j<slides.length;j++){
    slides.get(j).css('width',w);
}

私の間違いがどこにあるか知っていますか?
ありがとう。

4

7 に答える 7

3

実はこれ…

slides.css('width', w);

...で十分なはずです。ドキュメント.cssを引用して、セッターとして使用されるように:

...一致した要素ごとに1 つ以上の CSS プロパティを設定します。

デモ

于 2013-11-06T15:16:34.913 に答える
1

私は変更します:

for(var j=0;j<slides.length;j++){
    slides.get(j).css('width',w);
}

に:

$('#slideshow li').each(function(){
    $(this).width(w);
});
于 2013-11-06T15:14:42.983 に答える
0

交換してみる

for(var j=0;j<slides.length;j++){
    slides.get(j).css('width',w);
}

slides.each(function () {
    $(this).css('width', w + 'px');
});
于 2013-11-06T15:15:30.967 に答える
0

変化する

 slides.eq(j).css('width',w);

 slides.eq(j).css('width',w+'px');

x.width() return 80

その中にcssいる間unit

x.css('width','80px')
于 2013-11-06T15:14:15.950 に答える
0

slides.get(j)<li>jQuery オブジェクトではなく、各 の DOM オブジェクトを返します。

これはうまくいくはずです:

$( slides.get(j) ).css('width',w);

または、forループの代わりに:

slides.each(function () {
    $(this).css('width', w);
});
于 2013-11-06T15:14:27.903 に答える
0

これらの要素の配列を作成していますが、実際にはビューでそれらを変更し、を使用して変更する必要がありeachますthis

var w=$('#slideshow').width();
$("#slideshow ul li").each(function() {
    $(this).css("width", w);
});
于 2013-11-06T15:14:32.077 に答える