Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单JavaScript手风琴-如何获得点击面板的索引?_Javascript_Jquery_Html - Fatal编程技术网

简单JavaScript手风琴-如何获得点击面板的索引?

简单JavaScript手风琴-如何获得点击面板的索引?,javascript,jquery,html,Javascript,Jquery,Html,我用简单的JavaScript创建了一个简单的手风琴,没有jQuery。它是由JSON格式的外部JavaScript文件中给定的数据数量动态创建的 手风琴与html代码中的类似: <div id="description"> <script language="javascript" type="text/javascript"> startAccordion(); function startAccordion() { for (var i=1; i<

我用简单的JavaScript创建了一个简单的手风琴,没有jQuery。它是由JSON格式的外部JavaScript文件中给定的数据数量动态创建的

手风琴与html代码中的类似:

<div id="description"> 
<script language="javascript" type="text/javascript">
startAccordion();
function startAccordion() 
{
    for (var i=1; i<=Object.keys(description).length; i++){
        document.getElementById("description").innerHTML += 
            "<button class='accordion'>Trail " + description[i].Title + "</button>" + "<div class='accordion-panel'>" + "<p>" + description[i].Description + "<br></p>" + "</div>";
    }
}
</script>

startacordion();
函数startacordion()
{

for(var i=1;i遵循Mohamed Abbas提供的链接,这是它的工作方式。这是一个范围问题,在for循环中创建了一个新的范围:

var acc = document.getElementsByClassName('accordion');
for (var i = 0, i < acc.length; i++)
{

(function(index){
    acc[i].onclick = function(){

    //same as within the function given in the original post

          alert(index)  ;
    }    
})(i);

}
var acc=document.getElementsByClassName('accordion');
对于(变量i=0,i
检查这一点:jQuery中的任何东西都可以在Javascript中实现,毕竟jQuery是用JS编写的,在许多现代浏览器中,有许多有用的新功能类似于jQuery。非常感谢@Mohamed Abbas-链接问题上发布的解决方案解决了我的问题!
var acc = document.getElementsByClassName('accordion');
for (var i = 0, i < acc.length; i++)
{

(function(index){
    acc[i].onclick = function(){

    //same as within the function given in the original post

          alert(index)  ;
    }    
})(i);

}