2014-01-06 71 views
-1

我需要使用document.getElementsByClassName()來訪問div內的跨度。通過類名訪問跨度裏面div Div

我有─

<div class="PERSON"> 
    <span class="name">Person_name</span> 
    <span class="title">Person_title</span> 
    <span class="team">Person_team</span> 
</div> 

我需要訪問與類PERSON的所有div內的一流團隊所有跨度。我該怎麼做?

我有下面的代碼 -

function dispTeam(tname) 
{ 
    alert(tname); 
    var e=document.getElementsByClassName("PERSON"); 
    for(var m=0;m<e.length;m++) 
    { 
     if(e[m].document.getElementsByClassName("team").innerHTML.indexOf(tname)==-1) 
     { 
     e[m].style.display="none"; 
     } 
     else 
     { 
     e[m].style.display="block"; 
     } 
    } 
} 

警報被觸發得到,但沒有得到顯示的元素。

注意:有類PERSON的div沒有班級團隊的跨度。我也需要在這種情況下包含這些div。

如果他們沒有跨班級團隊,則不能顯示這些div。

回答

1

使用此代碼來代替:

dispTeam=function(tname) 
{ 
    var divs=document.getElementsByTagName("div"); 
    for(var i=0; i<divs.length; i++) 
     divs[i].style.display='none'; 
    var span=document.querySelectorAll(".PERSON>.team"); 
    for(var i=0; i<span.length; i++) 
    { 
     if(span[i].innerHTML.indexOf(tname)!=-1) 
      span[i].parentNode.style.display='block'; 
    } 
} 

DEMO

閱讀更多:querySelector() and querySelectorAll()