假设我有5个div元素。它们全部具有类似的onclick函数,将“删除”除被单击的div之外的其他div。
HTML:
<div id="1" class="divs" onclick="hide()"></div>
<div id="2" class="divs" onclick="hide()"></div>
<div id="3" class="divs" onclick="hide()"></div>
<div id="4" class="divs" onclick="hide()"></div>
<div id="5" class="divs" onclick="hide()"></div>
所以这就是我尝试的:
JavaScript:
function hide(){
var divs = document.getElementsByClassName("divs");
for(var i = 0; i < arrows.length; i++){
if(this != arrows[i]){
arrows[i].style.display = "none";
}
}
}
所有这些都是删除每个div,但是clicked元素应该保留。我知道jQuery中有一个“:not()”选择器,但我想使用JS做到这一点。有什么建议么?
谢谢
只需在html之类this
的hide()
html中传递hide(this)
,并将其作为javascript函数中的参数即可。这会将当前单击的DOM对象传递给hide
函数,然后您可以使用该对象显示特定的div。
HTML:
<div id="1" class="divs" onclick="hide(this)"></div>
<div id="2" class="divs" onclick="hide(this)"></div>
<div id="3" class="divs" onclick="hide(this)"></div>
<div id="4" class="divs" onclick="hide(this)"></div>
<div id="5" class="divs" onclick="hide(this)"></div>
JavaScript:
function hide(obj){
var arrows = document.getElementsByClassName("divs");
for(var i = 0; i < arrows.length; i++){
if(obj != arrows[i]){
arrows[i].style.display = "none";
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句