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);
}
我在一个页面上有一堆 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);
}