2012-07-18 51 views
1

样品来源不工作:的getElementsByTagName和getElementsByClassName方法在IE8

<div>  
      <br /> 
     <a name="IDATLQHE"></a> 
     <h2 class="subhead" xmlns=""> 
     <div class="dummy"> 
      <div class="dummyy"> 
       <span>abcd</span> 
      </div> 

      <div class="dummyyy"> 
       <span> 
         <a title="google" href="http://google.com">google.com</a> 
       </span> 
      </div>     
     </div> 
     </h2>  
    </div> 

输出需要:

我想,以取代与<div class="dummyy">元素的内容的<div class="dummyyy">元素<a>元素的内容。

的JavaScript写的:

<script type="text/javascript"> 
    var divs = document.getElementsByClassName('dummy'); 
    for(var i = 0, len = divs.length; i < len; i++) 
    { 
     var div = divs[i], 
     h2 = div.getElementsByClassName('dummyyy'), 
     h3 = div.getElementsByClassName('dummyy'); 
     if(h2.length === 1) 
     { 
      var aa= h2[0], 
      aaa=aa.getElementsByTagName('a'); 
      if(h2.length === 1 && h3.length === 1) 
      { 
       aaa[0].innerHTML = h3[0].innerHTML; 
       h3[0].innerHTML=null; 
      } 
     } 
    } 

此脚本在Firefox中工作正常,但不是在IE浏览器。

错误的:

getElementsByClassName 
aaa=aa.getElementsByTagName('a') 

可以在此任意一个帮助。

谢谢

回答

3

getElementsByClassName不支持IE8。如果您不需要IE7支持,则可以用div.querySelectorAll(".dummyy")

+0

谢谢你的解决方案。但我仍然得到aaa = aa.getElementsByTagName('a')中的错误 – Patan 2012-07-18 11:33:56

+0

你能帮到这个 – Patan 2012-07-18 11:34:05

+0

错误:没有这样的方法存在 – Patan 2012-07-18 11:34:26

0

getElementsByClassName()替换它,除IE8和更早版本之外的所有当前浏览器均可实现。 IE8支持querySelectorAll()

相关问题