使用For循环初始化JQuery手风琴

Using a For Loop to initialize JQuery accordions

本文关键字:JQuery 手风琴 初始化 循环 For 使用      更新时间:2023-09-26

我试图把我网站上的一些Javascript整合成一个共同的.js文件,在整个网站上共享,而不是每次都在页面上的<head>标签中写出所有内容。

我遇到的一个问题是,我有多个页面,每个页面上有不同数量的JQuery UI手风琴小部件。例如,一个页面将有两个手风琴,另一个将有7个,另一个将有5个。

现在,我可以让accordion方法初始化包含最多accordion的页面可能需要的最大accordion数量,而不使用生成的额外id,但这似乎是一种非常糟糕和低效的编码方式。如果有一种方法,我可以在Javascript中使用循环来查看页面上有多少个手风琴id,并只创建我需要的手风琴数量?例如,如果我有:

<div id="acc1">
     <!-- the accordion content here-->
</div>
<div id="acc2">
     <!-- the accordion content here-->
</div>
<div id="acc3">
     <!-- the accordion content here-->
</div>
<div id="acc4">
     <!-- the accordion content here-->
</div>

然后在文档中创建accordion方法。Ready事件应该知道自动生成4个accorons:

$("#acc1, #acc2, #acc3, #acc4").accordion();

如果可能的话,我用循环来做这个最有效的方法是什么?

你不需要一个循环。

给每个手风琴一个共同的类,比如class="accordion",然后:

$(".accordion").accordion();
演示

使用当前标记,您可以:

$( "div[id^='acc']" ).accordion();
http://api.jquery.com/attribute-starts-with-selector/