use*_*017 1 html javascript visibility toggle
http://blog.movalog.com/a/javascript-toggle-visibility/
这是一个包含一些代码和脚本的页面,我在我的网站中使用图像库,但是当尝试切换多个div的可见性时,它只适用于第一个.可以有人请修复它与多个div的工作,我不知道js :)
这是javascript
<script type="text/javascript">
<!--
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
//-->
</script>
Run Code Online (Sandbox Code Playgroud)
这是链接的html代码
<tr><td><a href="#" onclick="toggle_visibility('nyc');">New York</a></td>
<td><a href="#" onclick="toggle_visibility('photoshop');">Photoshop Work</td>
<td><a href="#" onclick="toggle_visibility('photography');">Photography</td></tr>
<tr><td><a href="#" onclick="toggle_visibility('art');">Art Projects</td></tr>
Run Code Online (Sandbox Code Playgroud)
等一下,这可能不起作用,因为它试图通过"id"属性访问多个div的属性,它是否可以使用类属性,如果是这样,我只需更改java脚本,它说"id"到"班级"
看来你正在尝试类似的东西
<div id="a"></div>
<div id="a"></div>
toggle_visibility('a');
Run Code Online (Sandbox Code Playgroud)
问题是每个id在文档中必须是唯一的,因此document.getElementById返回单个元素,而不是元素集合.
然后,如果您想拥有多个具有相同ID的元素,则应该使用类.
<div class="a"></div>
<div class="a"></div>
function toggle_visibility(cl){
var els = document.getElementsByClassName(cl);
for(var i=0; i<els.length; ++i){
var s = els[i].style;
s.display = s.display==='none' ? 'block' : 'none';
};
}
toggle_visibility('a');
Run Code Online (Sandbox Code Playgroud)
如果要使其适用于多个类,请使用
var toggle_visibility = (function(){
function toggle(cl){
var els = document.getElementsByClassName(cl);
for(var i=0; i<els.length; ++i){
var s = els[i].style;
s.display = s.display==='none' ? 'block' : 'none';
};
}
return function(cl){
if(cl instanceof Array){
for(var i=0; i<cl.length; ++i){
toggle(cl[i]);
}
}else{
toggle(cl);
}
};
})();
toggle_visibility('myclass');
toggle_visibility(['myclass1','myclass2','myclass3']);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19668 次 |
| 最近记录: |