如何将 jQuery 函数应用于具有相同 ID 的所有元素?

IT技术 javascript jquery dom
2021-02-01 02:57:55

我是 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个回答

为元素的ID都应该是独一无二DOM两个或多个元素具有相同的 ID 是无效的 html要跨元素共享功能,请为它们分配一个公共类,而不是给它们相同的 ID。如果您不能为它们分配一个公共类,下面的解决方法将允许您选择具有相同 id 属性的元素:

使用相同的 ID (如果无法更改 ID)

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

使用公共类(推荐方式)

jQuery(document).ready(function() { 
    jQuery('.carousel').jcarousel();
});
如果您在同一页面上多次添加具有相同 id 的解释是无效的 HTML,那么您在这里就有了最佳答案。
2021-03-18 02:57:55

您不能拥有多个具有相同 Id 的元素,这就是不起作用的原因。你应该class="caroussel"改用。

jQuery(document).ready(function() {
    jQuery('.carousel').jcarousel();
});
You can't have more than one element with the same Id你可以,它只是无效的 HTML。:)
2021-03-11 02:57:55

在最新版本的 jQuery 中,当页面上有多个 id 时,选择器将仅返回在 DOM 中找到的第一个“id”。您应该改用 class。

在这种情况下,您应该使用类。您不能使用 id。否则你可以试试下面的代码。

jQuery('ul').jcarousel();