document.getElementById("cc").appendChild(getAnchor());
//document.getElementsByName("cc")[0].appendChild(getAnchor());//IE
document.getElementsByName("ha")[0].appendChild(getAnchor());//FireFox
document.getElementsByTagName("div")[0].appendChild(getAnchor());//建立一个新的链接对象
function getAnchor()
{
var Anchor = document.createElement("a")
Anchor.innerHTML="百度"
Anchor.href="http://www.baidu.com";
return Anchor;
}
首先,IE和FireFox对getElementsByName的处理是不同的,IE的比较囧,实际取的是ID,所以你用ha在IE下是取不到对象的第二个问题,每次添加都需要一个新的Anchor,就像一个人,你总不能让他同时在北京上海吧

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    <body>
    第2个问题:<br/>
    正确的用法是document.getElementsByName("ha")[0].appendChild(Anchor);
    但是ie下还是无法添加因为ie下的document.getElementById与document.getElementsByName
    都是有bug的document.getElementById会返回name想匹配的节点,而document.getElementsByName
    仅能返回img和input textarea select 等这些表单控件,所以div="ha"这个节点用ie的
    document.getElementsByName是获取不到的
        
    <hr/>
        下面的节点是测试节点,ie仅能找到3个
       <img name="t1" src="">
       <input type="text" name="t1"/>
       <select name="t1"></select>
       <div name="t1">div</div>
       <span name="t1">span</span> 
       <hr/>
       
       <div name="ha" id="cc"></div>
    </body> 
    </html>
    <script> 
    var Anchor = document.createElement("a");
    Anchor.innerHTML="摆渡";
    Anchor.href="http://www.baidu.com";
    //document.getElementById("cc").appendChild(Anchor);
    alert("name=t1的节点个数为:"+document.getElementsByName("t1").length);
    try{
        //ie下会返回name=t1的img
        alert(document.getElementById("t1").tagName);
    }catch(e){}
    alert(document.getElementsByName("ha").length);
    //document.getElementsByName("ha")[0].appendChild(Anchor);
    //document.getElementsByTagName("div")[0].appendChild(Anchor); 
    //document.body.appendChild(Anchor);
    </script>
      

  2.   

    ie下document.getElementById、与document.getElementsByName的那两处bug很恶心
    使用的是有一定要注意