JQuery 手风琴未在循环中初始化

JQuery accordion not initializing in loop

我在一个页面上有一堆 JQuery 个手风琴,都带有 class "accordion",我想初始化它们。我知道我可以做到:

var accordions = $( ".accordion" );
accordions.accordion();

但是,我需要根据它们的属性使用略有不同的参数对它们进行初始化。所以我尝试以下代码:

var accordions = $( ".accordion" );        
for (var i = 0; i < accordions.length; i++)
{
    var autoExpand = accordions[i].getAttribute("autoExpand"); // get attribute            
    accordions[i].accordion({ 
            animate: 100, 
            active: location.href.includes(autoExpand) ? 0 : false, 
            collapsible: true, 
            heightStyle: "content",
            icons: { header: "ui-icon-plus", activeHeader: "ui-icon-minus" } 
       });  
} 

但是我得到这个错误: jquery-3.4.1.min.js:2 未捕获类型错误:手风琴[i].accordion 不是函数

为什么会这样?

你可以这样做,并使用i的增量值设置条件,或者你可以增加函数

中的参数
function setAcc(a,i){
$(a).accordion({ 
            animate: 100, 
            active: location.href.includes(autoExpand) ? 0 : false, 
            collapsible: true, 
            heightStyle: "content",
            icons: { header: "ui-icon-plus", activeHeader: "ui-icon-minus" } 
       });  

}

var accordions = $( ".accordion" );        
for (var i = 0; i < accordions.length; i++)
{

 setAcc(accordions,i);   

}