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

时间:2013-01-11 09:20:35

标签: javascript jquery dom

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

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

它仅适用于ul的{​​{1}},而不适用于其他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 个答案:

答案 0 :(得分:9)

您不能拥有多个具有相同ID的元素,这就是为什么不起作用的原因。您应该使用class="caroussel"代替。

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

答案 1 :(得分:9)

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

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

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

使用公共类(推荐方式)

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

答案 2 :(得分:2)

在jQuery的最新版本中,当页面上有多个id时,selector将只返回在DOM中找到的第一个“id”。你应该使用class。

答案 3 :(得分:0)

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

jQuery('ul').jcarousel();