单击 Link 时加减切换

Plus Minus Toggle on Clicking a Link

我有一个带加号的 link(更多详细信息[+])...当用户单击 link 时,我希望 link 变为minus (More Details[-]),并显示其下方的内容。我可以 show/hide 内容,但 +/- 切换不起作用。注意:我是javascript的新手,所以请耐心等待我的知识不足...

注意:有一些关于 +/- 切换的帖子。我需要有关我在下面编写的代码的帮助。

下面是 javascript...

// Plus/Minus Toggle
function toggle_plus(id) {
    var f = document.getElementById(id);
    if (f.classList.contains("showplus")) {
            f.removeClass("showplus");
            f.addClass("showminus");
        } else {
            f.removeClass("showminus");
            f.addClass("showplus");
        }
}
// Toggle to show and hide content below the link
function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block') {
      e.style.display = 'none';
   } else {
      e.style.display = 'block';
   }
}

下面是html的内容.....

<div class="teamdetail">
    <a href="javascript:void(0)" onclick="toggle_visibility('team4'); toggle_plus('team4Plus');">More Details [<span id="team4Plus" class="showplus"></span>]</a>
</div>
<div id="team4" class="teamtxt">
    Text Goes Here
</div>

以及 showplus 和 showminus 的 CSS

.showminus:before { content: '-'; } 
.showplus:before { content: '+'; }  

.removeClass.addClass 是 jQuery 函数。您需要使用 .classList.add.classList.remove

// Plus/Minus Toggle
function toggle_plus(id) {
    var f = document.getElementById(id);
    if (f.classList.contains("showplus")) {
            f.classList.remove("showplus");
            f.classList.add("showminus");
        } else {
            f.classList.remove("showminus");
            f.classList.add("showplus");
        }
}
// Toggle to show and hide content below the link
function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block') {
      e.style.display = 'none';
   } else {
      e.style.display = 'block';
   }
}
.showminus:before { content: '-'; } 
.showplus:before { content: '+'; }
<div class="teamdetail">
    <a href="javascript:void(0)" onclick="toggle_visibility('team4'); toggle_plus('team4Plus');">More Details [<span id="team4Plus" class="showplus"></span>]</a>
</div>
<div id="team4" class="teamtxt">
    Text Goes Here
</div>

除了 Dave 的回答(我没有足够的代表发表评论:/),toggle 是你的朋友。

// Plus/Minus Toggle
function toggle_plus(id) {
    var f = document.getElementById(id);
    f.classList.toggle("showplus");
    f.classList.toggle("showminus");
}

也会这样做。

此外,Chrome 检查器控制台是您的朋友 - 它会向您抛出错误。 https://developers.google.com/web/tools/chrome-devtools/console/