Javascript 如何将jQuery函数应用于具有相同ID的所有元素?
我不熟悉jQuery。我有以下代码:Javascript 如何将jQuery函数应用于具有相同ID的所有元素?,javascript,jquery,dom,Javascript,Jquery,Dom,我不熟悉jQuery。我有以下代码: jQuery(document).ready(function() { jQuery('#carousel').jcarousel(); }); 它仅适用于带有id=“carousel”的第一个ul,不适用于其他。如何将其应用于具有相同ID的所有元素 HTML: <!-- jQuery applies to this div --> <div id="slideshow-carousel"> <ul id="c
jQuery(document).ready(function() {
jQuery('#carousel').jcarousel();
});
它仅适用于带有id=“carousel”
的第一个ul
,不适用于其他。如何将其应用于具有相同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>
不能有多个具有相同Id的元素,这就是它不工作的原因。您应该改用class=“caroussel”
jQuery(document).ready(function() {
jQuery('.carousel').jcarousel();
});
元素的ID在
DOM
中应该是唯一的。两个或多个元素具有相同的ID是无效的html。要跨元素共享功能,请为它们分配一个公共类,而不是给它们相同的ID。如果无法为它们分配公共类,下面的解决方法将允许您选择具有相同ID属性的元素:
使用相同的ID(如果无法更改ID)
使用通用类(推荐方式)
在jQuery的最新版本中,当页面上有多个id时,选择器将只返回在DOM中找到的第一个“id”。您应该改用class。在这种情况下,您应该使用class。您不能使用id。否则您可以尝试以下代码
jQuery('ul').jcarousel();
您应该避免多次使用同一id。。。改为使用一个类,例如和$(“.myClass”)对多个控件使用相同的ID?这是不可以的嘿,欢迎来到SO:)+1对他们说,你应该创建一个类而不是id。还可以尝试做一个JSFIDLE,这样我们就可以继续并填充空白。
不能有多个元素具有相同的id
可以,它只是无效的HTML。:)如果您添加了在同一页面上多次使用相同id是无效HTML的解释,那么您在这里得到了最佳答案。
jQuery(document).ready(function() {
jQuery('.carousel').jcarousel();
});
jQuery('ul').jcarousel();