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

时间:2014-05-10 16:26:40

标签: javascript jquery jquery-ui loops accordion

我正在尝试将我网站上的一些Javascript整合到一个在整个网站上共享的常见.js文件中,而不是每次都要在页面上的<head>标记中写出所有内容。

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

现在,我可以让手风琴方法初始化我可能需要的手风琴最大数量的手风琴,并且不使用生成的额外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>

然后我在document.ready事件中的accordion方法应该知道自动生成4个手风琴:

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

如果可能的话,最有效的方法是,我可以通过循环来做到这一点吗?

2 个答案:

答案 0 :(得分:3)

你不需要循环。

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

$(".accordion").accordion();

DEMO

答案 1 :(得分:2)

使用当前标记,您可以:

$( "div[id^='acc']" ).accordion();

http://api.jquery.com/attribute-starts-with-selector/