2

私はjQueryが初めてです。次のコードがあります。

jQuery(document).ready(function() {
    jQuery('#carousel').jcarousel();
});

ul最初のにのみ適用されid="carousel"、他のものには適用されません。同じ ID を持つすべての要素に適用するにはどうすればよいですか?

HTML:

<!-- jQuery applies to this div -->
<div id="slideshow-carousel">
    <ul id="carousel" class="jcarousel jcarousel-skin-tango">
        <!-- ... -->
    </ul>
</div>

<!-- jQuery does not apply for this div -->
<div id="slideshow-carousel">
    <ul id="carousel" class="jcarousel jcarousel-skin-tango">
        <!-- ... -->
    </ul>
</div>
4

4 に答える 4

9

同じ ID を持つ要素を複数持つことはできません。そのため、機能していません。class="caroussel"代わりに使用する必要があります。

jQuery(document).ready(function() {
    jQuery('.carousel').jcarousel();
});
于 2013-01-11T09:21:53.700 に答える
9

要素の IDは、DOM. 2 つ以上の要素に同じ ID を持つことは、有効な html ではありません。要素間で機能を共有するには、同じ ID を付与するのではなく、共通のクラスを割り当てます。それらに共通のクラスを割り当てることができない場合は、以下の回避策により、同じ id 属性を持つ要素を選択できます。

同一IDの利用(ID変更不可の場合)

jQuery(document).ready(function() {
    jQuery('[id=carousel]').jcarousel();
});

共通のクラスを使用する(推奨される方法)

jQuery(document).ready(function() { 
    jQuery('.carousel').jcarousel();
});
于 2013-01-11T09:22:10.533 に答える
2

最近のバージョンの jQuery では、ページに複数の ID がある場合、セレクターは DOM で見つかった最初の「ID」のみを返します。代わりにクラスを使用する必要があります。

于 2013-01-11T09:25:17.887 に答える
0

このような状況では、クラスを使用する必要があります。IDはご利用いただけません。それ以外の場合は、以下のコードを試すことができます。

jQuery('ul').jcarousel();
于 2013-01-11T09:40:26.893 に答える