2

我是 jQuery 的新手。我有以下代码:

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

它仅适用于第一个ulwith 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

元素的IDDOM. 两个或多个元素的 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 回答