增强这个简单的JS显示/隐藏脚本
Enhance this simple JS show/hide script
我有这个:
JS
function unhide(divID) {
var item = document.getElementById(divID);
if (item) {
item.className=(item.className=='hidden')?'unhidden':'hidden';
}
}
CSS .hidden { display: none; }
.unhidden { display: block; }
HTML <a href="javascript:unhide('learnHTML');">See tips and tricks</a>
<p><div id="learnHTML" class="hidden"> my text</div></p>
这一切都工作得很好,但是当链接"查看提示和技巧"被点击并显示相关文本时,我想将文本更改为"隐藏提示和技巧"。我试了好几种方法,都没能弄明白。我更喜欢不使用jQuery的纯JS。
http://jsfiddle.net/hNVHJ/6/有更好的方法来做到这一点,但我认为这是你想要的。
使用onclick代替href:
<a href="javascript:void(0);" onclick="unhide(this,'learnHTML');">See tips and tricks</a>
<p><div id="learnHTML" class="hidden"> my text</div></p>
JS:
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';
}
}
}
这是你的提琴
您可以通过在链接上添加事件侦听器来实现这一点。首先,你应该给链接标签一个像'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>
现在,在</body>
标签上面添加一个<script></script>
在这个脚本标签中,你可以放这个javascript。它需要在主体中的所有html之后的原因是,在元素加载到页面上之前,javascript不会运行。
(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';
});
})();
它的作用是将两个元素存储到变量中,以便于访问。然后为链接标记上的单击事件添加一个事件侦听器。当链接标签被点击时,回调函数运行。
这是一个js提琴http://jsfiddle.net/hNVHJ/11/
这个JS代码是对上面代码http://jsfiddle.net/hNVHJ/13/的增强,它允许多个链接和多个隐藏div。
相关文章:
- 在jquery中为显示/隐藏设置cookie
- PHP Javascript显示/隐藏按钮不工作
- 打开/关闭按钮以显示/隐藏内容
- 显示隐藏复选框
- 在bootstrap中显示隐藏特定的li
- JQuery上下文菜单显示/隐藏问题
- JQuery在单击时停止显示/隐藏
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 使用 jQuery 切换显示/隐藏
- 显示/隐藏有关模型更改的指令内容
- Bootstrap在页面加载缓慢时会立即显示隐藏的模式对话框
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 显示/隐藏不起作用
- 使用ng-hide根据条件显示/隐藏按钮
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 显示/隐藏http://ftp链接
- 在显示/隐藏中单击时删除的文本
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- 将页面内容向左移动时显示/隐藏右侧面板
- 显示/隐藏将不会加载