介于[0]和循环遍历getElementsByClassName

时间:2015-11-25 11:13:19

标签: javascript getelementsbyclassname

我有一个代码,最初只会激活第一次出现的ElementsByClassName(" thishere"),即使单击文档中的后续内容也是如此。



function zxcv(el) {
el.style.display = "none";
el.parentNode.parentNode.getElementsByClassName("thishere")[0].style.display = 'block';
return false;
}




所做的更改(见下文)意味着当点击任何ElementsByClassName(" thishere")时它可以循环遍历所有元素ByClassName(" thishere")但我是实际上寻找中间的东西;我只想点击要激活的元素的特定事件,而不是同时发生所有事件。

我的专业知识非常有限,所以我希望我使用了正确的术语并提供了相关信息。非常感谢帮助。



function zxcv(el) {
    el.style.display = "none";
    var elements = el.parentNode.parentNode.getElementsByClassName("thishere");
    for(var i in elements) {
           elements[i].style.display = 'block';
    }
    return false;
}




以下是使用的HTML:



<div><a href="stackoverflow.com" target="_blank" rel="follow" onClick="zxcv(this)">Stackoverflow</a><div class="thishere" style="display:none;">On Your Way To Expert Help</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

function zxcv(el){
    var elements=el.parentNode.parentNode.getElementsByClassName("thishere");
    for(var i=0,len=elements.length;i<len;i++){
        !function(i){
           elements[i].style.display='block';
        }(i)
    }
    el.style.display="none";
    return false
}
根据我的了解,

for... in仅适用于JavaScript对象。

答案 1 :(得分:-1)

试试这个:

HTML:

<div class="thishere">
<h1 style="display:none;">CleverPeople</h1>
<a href="stackoverflow.com" target="_blank" rel="follow">www.Stackoverflow.com</a>
</div>

<div class="thishere">
<h1  style="display:none;">MoreCleverPeople</h1>
<a href="stackoverflow.com" target="_blank" rel="follow">www.Stackoverflowmore.com</a>
</div>

JS:

   $('document').ready(function(){
     $('.thishere').on('click',function(e){
     $(this).find('a').hide();
     $(this).find('h1').show();
     //return false;
    })
  });