簡體   English   中英

JavaScript:同一頁面上所有href上的調用切換功能

[英]JavaScript: call toggle function on all href on same page

我有一個帶有大量javascript開關的幫助頁面,以顯示或隱藏該主題的幫助。 有沒有辦法將它們全部切換為全部顯示或全部隱藏?

<a href="javascript:toggle('roles');">Roles or Account Permissions</a>
    <div id="roles" style="display:none">

<a href="javascript:toggle('tracks');">Tracks and Activities</a>
    <div id="tracks" style="display:none">

<a href="javascript:toggle('password');">Modifying Password</a>
    <div id="password" style="display:none">

也許

<a href="javascript:toggle('roles', 'tracks', 'password');">Toggle all</a>

這是我的javascript

function toggle(divId) {
"use strict";
var div = document.getElementById(divId);
if (div.style.display === "none") {
    div.style.display = "block";
} else {
    div.style.display = "none";
}

}

您有jQuery標簽,所以聽起來您正在使用jQuery?

然后為每個A標簽添加一個類名:

<a href="javascript:$('a.className').toggle();">toggle</a>

無需您的切換代碼。

只需使用arguments集合循環所有id:

function toggle() {
    "use strict";
    [].slice.call(arguments).forEach(function(divId) {
        var div = document.getElementById(divId);
        if (div.style.display === "none") {
            div.style.display = "block";
        } else {
            div.style.display = "none";
        } 
    });
}

為了方便起見,我將arguments轉換為純數組(以使用Array.prototype.forEach方法),您當然也可以使用簡單的for循環。

查看下面的演示。

 function toggle() { "use strict"; [].slice.call(arguments).forEach(function(divId) { var div = document.getElementById(divId); if (div.style.display === "none") { div.style.display = "block"; } else { div.style.display = "none"; } }); } 
 a {display: block;} 
 <a href="javascript:toggle('roles');">Roles or Account Permissions</a> <div id="roles" style="display:none">Roles</div> <a href="javascript:toggle('tracks');">Tracks and Activities</a> <div id="tracks" style="display:none">Tracks</div> <a href="javascript:toggle('password');">Modifying Password</a> <div id="password" style="display:none">Modifying Password</div> <a href="javascript:toggle('roles', 'tracks', 'password');">Toggle all</a> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM