Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 增强这个简单的JS显示/隐藏脚本_Javascript - Fatal编程技术网

Javascript 增强这个简单的JS显示/隐藏脚本

Javascript 增强这个简单的JS显示/隐藏脚本,javascript,Javascript,我有这个: JS CSS HTML 我的文字 这一切都很好,但当链接“查看提示和技巧”被点击并显示相关文本时,我想将文本更改为“隐藏提示和技巧”。我试了好几件事,但都想不出来。我更喜欢没有jQuery的纯JS 有更好的方法可以做到这一点,但我想这正是您想要的。 使用onclick而不是href: HTML: 这是您的您可以通过在链接上添加事件侦听器来完成此操作。首先,您应该给link标记一个类似于“tips-tricks-toggle”的id,以便您可以使用javascript轻松访问它 &

我有这个:

JS

CSS

HTML


我的文字

这一切都很好,但当链接“查看提示和技巧”被点击并显示相关文本时,我想将文本更改为“隐藏提示和技巧”。我试了好几件事,但都想不出来。我更喜欢没有jQuery的纯JS


有更好的方法可以做到这一点,但我想这正是您想要的。
使用onclick而不是href:

HTML:


这是您的

您可以通过在链接上添加事件侦听器来完成此操作。首先,您应该给link标记一个类似于“tips-tricks-toggle”的id,以便您可以使用javascript轻松访问它

<a href="#" id="tips-tricks-toggle">See tips and tricks</a>
<p><div id="learnHTML" class="hidden"> my text</div></p>
它所做的是将这两个元素存储到变量中以便于访问。然后在link标记上为click事件添加一个事件侦听器。单击链接标记时,将运行回调函数

这是一把js小提琴


此JS fiddle是对上述代码的增强,它允许多个链接和多个隐藏div。

我建议学习正确的事件处理/绑定:。我测试了你的fiddle,但它不工作,因为我单击“是”时没有显示任何内容,但你的解决方案似乎只对一个特定元素ID有效。使用我提到的脚本通过调整链接和div ID,可以显示/隐藏任何元素。
 .hidden { display: none; }
 .unhidden { display: block; } 
  <a href="javascript:unhide('learnHTML');">See tips and tricks</a> 
  <p><div id="learnHTML" class="hidden"> my text</div></p>
  <a href="javascript:void(0);" onclick="unhide(this,'learnHTML');">See tips and tricks</a> 
    <p><div id="learnHTML" class="hidden"> my text</div></p>
function unhide(elem,divID) {
    var item = document.getElementById(divID);
    if (item) {
        if(item.className == 'hidden'){
              elem.innerText = elem.innerText.replace('See','Hide');
              item.className= 'unhidden';
        }
        else
        {
              elem.innerText = elem.innerText.replace('Hide','See');
              item.className= 'hidden';
        }
    }
  }
<a href="#" id="tips-tricks-toggle">See tips and tricks</a>
<p><div id="learnHTML" class="hidden"> my text</div></p>
(function() {
    var button = document.getElementById('tips-tricks-toggle'),
        div = document.getElementById('learnHTML');
    button.addEventListener('click', function() {
        this.innerHTML = this.innerHTML === 'See tips and tricks' ? 'Hide tips and tricks' : 'See tips and tricks';
        div.className = div.className === 'hidden' ? 'unhidden' : 'hidden';
    });
})();