有没有更简洁的方式来编写这个jQuery?

use*_*277 2 jquery loops for-loop

我可以把它写成循环吗?

$(document).ready(function(){
    $('#slideItems1').bxSlider();
    $('#slideItems2').bxSlider();
    $('#slideItems3').bxSlider();
    $('#slideItems4').bxSlider();
    $('#slideItems5').bxSlider();
});
Run Code Online (Sandbox Code Playgroud)

我正在使用bxSlider并且要使用多个图库,您需要调用滑块并将其关联到每个项目.我有时每页有200多种产品.

Jam*_*ice 10

您可以使用属性starts-with selector来选择ID为以"slideItems"开头的所有元素:

$('[id^="slideItems"]').bxSlider();
Run Code Online (Sandbox Code Playgroud)

大多数jQuery方法就是这种情况(大多数插件也会允许它).该方法适用于匹配集中的每个元素,因此不需要循环.您可以看到您正在使用的插件如何在其源代码中实现此功能(请注意调用each,并注意this引用包含匹配的元素集的jQuery对象):

this.each(function(){
    // make sure the element has children
    if($(this).children().length > 0){
        base.initShow();
    }
});
Run Code Online (Sandbox Code Playgroud)


472*_*084 6

将所有幻灯片项目分类,然后就可以了 $('.slideItem').bxSlider();

  • @ user1686277 - 如果你使用它,那么你需要给每个元素一个类名为"slideItem".你将不再需要`id`. (2认同)