有没有更干净的方法来编写这个jQuery?

有没有更干净的方法来编写这个jQuery?,jquery,loops,for-loop,Jquery,Loops,For Loop,我能把这个写进一个循环吗 $(document).ready(function(){ $('#slideItems1').bxSlider(); $('#slideItems2').bxSlider(); $('#slideItems3').bxSlider(); $('#slideItems4').bxSlider(); $('#slideItems5').bxSlider(); }); 我正在使用和对于使用多个库,您需要调用滑块并将其与每个项目关联。

我能把这个写进一个循环吗

$(document).ready(function(){
    $('#slideItems1').bxSlider();
    $('#slideItems2').bxSlider();
    $('#slideItems3').bxSlider();
    $('#slideItems4').bxSlider();
    $('#slideItems5').bxSlider();
});
我正在使用和对于使用多个库,您需要调用滑块并将其与每个项目关联。我有时每页有200多种产品。

您可以使用选择ID以“slideItems”开头的所有元素:

大多数jQuery方法都是这样(大多数插件也允许这样做)。该方法应用于匹配集中的每个元素,因此不需要循环。您可以看到正在使用的插件是如何实现此功能的(请注意对
each
的调用,并注意
this
指的是包含匹配元素集的jQuery对象):


为所有幻灯片项目设置一个类,然后只需执行
$('.slideItem').bxSlider()

给所有元素一个类,然后使用该类选择它们

$('.slideItems').bxSlider();

简短但不是最佳的重写是(如果slideitems列表是固定的)

不过,我强烈建议只给他们上一节课。说
slideritem
然后做

$(function(){
    $('.slideritem').bxSlider();
});

我建议为它指定类名,并使用类名访问它

//slideritem is class name which you give to all which has to slider div

$(function()
{

    $('.slideritem').bxSlider();
});

我也强烈推荐这个画廊。非常简单和流畅。我会尝试指定元素类型作为其中的一部分,以提高selector@CaffGeek-为什么?它基于文档中唯一的
id
值进行选择。它们是您需要得到的最具体的ID。另外,这些ID不会在整个dom.Performance中随机出现。它们是特定于我们的,因为我们很快就会看到只有少数匹配,但是,选择器引擎必须查看DOM中每个元素的id。如果将元素添加到选择器中,如,
$('div[id^=“slideItems”]”)。bxSlider()
,则只需查看
div
s(用实际的元素替换div)。基本上,它可以使用本机getElementsByClassName来减少最初要检查的元素列表。@CaffGeek-在现实世界中,这种差异将是微不足道的。在大多数浏览器中,
querySelectorAll
将用于这两种浏览器,并且在这两种情况下速度几乎相同。不过你说得对——如果这一级别的性能是一个真正的问题,那么最好添加标记名。这不起作用。我对每一个都执行了
class=“element”id=“slideItems1”
等操作,并执行了此操作,然后使程序崩溃page@user1686277-如果使用此选项,则需要为每个元素指定一个类名“slideItem”。您将不再需要
id
$(function(){
    $('#slideItems1, #slideItems2, #slideItems3, #slideItems4, #slideItems5').bxSlider();
});
$(function(){
    $('.slideritem').bxSlider();
});
//slideritem is class name which you give to all which has to slider div

$(function()
{

    $('.slideritem').bxSlider();
});