一键调用js函数多次

call js function multiple times from one click

本文关键字:函数 js 调用 一键      更新时间:2023-09-26

我对javascript很陌生,所以可能有一个简单的解决方案来解决我的问题。我制作了一个xml文件,用于存储我想添加到网页中的图像信息,这些图像添加了标签。我发现了一个js函数,它可以通过点击链接隐藏/显示图像,就像我想要的那样。然而,我想一次点击显示所有带有特定标签的图像,这就是的问题所在

<script type="text/javascript">
function unhide(divID) 
{
 var item = document.getElementById(divID);
 if (item) 
     {
     item.className=(item.className=='hidden')?'unhidden':'hidden';
     }
}
function ClassTag(Name) 
{
 var TagNameArrayJS = <?php echo json_encode($TagNameArray); ?>;
 var TagArrayJS = <?php echo json_encode($TagArray); ?>;
 var PhotoIdArrayJS = <?php echo json_encode($PhotoIdArray); ?>;
 var aa = 0;
 var bb = 0;
    while(aa < TagNameArrayJS.length)
    {
        if(TagNameArrayJS[aa] == Name)
        {
            while(bb < TagArrayJS[aa].length)
            {
                unhide(PhotoIdArrayJS[TagArrayJS[aa][bb]]);
                bb = bb + 1;
            }
        }
    aa = aa + 1;
    }                                           
}
</script>

输出:

 <script type="text/javascript">
 function unhide(divID) 
 {
 var item = document.getElementById(divID);
 if (item) 
     {
     item.className=(item.className=='hidden')?'unhidden':'hidden';
     }
 }
 function ClassTag(Name) 
 {
 var TagNameArrayJS = ["All","Anders","Hanna","Church","Party"];
 var TagArrayJS = [[0,1,2],[0],[0,1,2],[0,2],[1]];
 var PhotoIdArrayJS = ["JPG001","JPG002","JPG003"];
 var aa = 0;
 var bb = 0;
    while(aa < TagNameArrayJS.length)
        {
        if(TagNameArrayJS[aa] == Name)
            {
                while(bb < TagArrayJS[aa].length)
                    {
                        unhide(PhotoIdArrayJS[TagArrayJS[aa][bb]]);
                        bb = bb + 1;
                    }
            }
        aa = aa + 1;
        }                                           
}
</script>

html:

<a href="javascript:ClassTag('hanna');">Hanna</a>

我写了一个新函数"ClassTag"来调用我想要的图像的取消隐藏函数。TagNameArray具有标记的名称,用于与调用的进行比较。TagArrayJS在每个位置都有一个数组,用它来调用图像编号。PhotoIdArrayJS具有取消隐藏函数中使用的Id。

那么问题来了,我该如何编写一个函数来使用这些数据按我想要的次数调用我的取消隐藏函数呢?

/感谢

while(bb < TagArrayJS.length)更改为while(bb < TagArrayJS[aa].length)

此外,正如其他用户所说,考虑学习jQuery,因为它将简化代码。