【问题标题】:getElementsByTagName and getElementsByClassName not working in IE8 [duplicate]getElementsByTagName 和 getElementsByClassName 在 IE8 中不起作用 [重复]
【发布时间】:2012-07-18 08:35:48
【问题描述】:

样本来源:

 <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>

需要输出:

我想将&lt;div class="dummyyy"&gt;元素中&lt;a&gt;元素的内容替换为&lt;div class="dummyy"&gt;元素的内容。

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

任何人都可以帮助解决这个问题。

谢谢

【问题讨论】:

    标签: javascript internet-explorer internet-explorer-8


    【解决方案1】:

    getElementsByClassName 不受 IE8 支持。如果不需要IE7支持,可以换成div.querySelectorAll(".dummyy")

    【讨论】:

    • 感谢您的解决方案。但我仍然在 aaa=aa.getElementsByTagName('a') 中遇到错误
    • @User222 你能提供一个jsfiddle吗?
    【解决方案2】:

    getElementsByClassName() 由除 IE8 及更早版本之外的所有当前浏览器实现。 IE8确实支持querySelectorAll()

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 2012-10-27
      • 2011-09-28
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      相关资源
      最近更新 更多