gpt4 book ai didi

Javascript 切换可见性多个 div

转载 作者:行者123 更新时间:2023-11-28 04:06:55 24 4
gpt4 key购买 nike

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>

这是链接的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>

等一下,这会不会不起作用,因为它试图通过“id”属性访问多个 div 的属性,它是否可以与类属性一起使用,如果可以,我是否只更改它所说的 java 脚本“id”到“class”

最佳答案

看来你正在尝试类似的东西

<div id="a"></div>
<div id="a"></div>

toggle_visibility('a');

问题在于每个 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');

如果你想让它与多个类一起工作,使用

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']);

关于Javascript 切换可见性多个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17642422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com