【问题标题】:How do I add a div to DOM and pick it up later如何将 div 添加到 DOM 并稍后将其拾取
【发布时间】:2010-09-08 08:13:31
【问题描述】:

我认为这是 IE 6.0 特有的,但是...

在 JavaScript 中,我将 div 添加到 DOM。我分配了一个id 属性。当我后来尝试通过id 拿起div 时,我得到的只是null

有什么建议吗?

例子:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);

alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );

警报打印"::null"

在 Firefox 2.0+ 中似乎可以正常工作

【问题讨论】:

    标签: javascript css dhtml


    【解决方案1】:

    除了其他答案的建议(您需要将元素实际插入 DOM 以便通过 getElementById() 找到它),您还需要使用小写的属性名称,以便 IE6将其识别为id

    var newDiv = document.createElement("DIV"); 
    newDiv.setAttribute("id", "obj_1000");
    document.body.appendChild(newDiv);
    
    alert("Added:"
       + newDiv.getAttribute("id") 
       + ":" + newDiv.id + ":" 
       + document.getElementById("obj_1000") );
    

    ...按预期响应:

    Added:obj_1000:obj_1000:[object]
    

    根据MSDN documentationsetAttribute(),直到IE8 都有一个可选的第三个​​参数,用于控制属性名称是否区分大小写。猜猜默认是什么...

    【讨论】:

      【解决方案2】:

      需要将 div 添加到元素中才能使其成为文档的一部分。

      document.appendChild(newDiv);
      
      alert( document.getElementById("obj_1000") );
      

      【讨论】:

        【解决方案3】:

        您必须将 div 添加到 dom。

        // Create the Div
        var oDiv = document.createElement('div');
        document.body.appendChild(oDiv);
        

        【讨论】:

          【解决方案4】:

          newDiv.setAttribute("ID", "obj_1000");

          应该是

          newDiv.id = "obj_1000";

          【讨论】:

            【解决方案5】:

            嗯,谢谢你们让我走上正轨……这很奇怪,但事实证明,如果我将大小写改为小写,一切都开始正常了……

            完成结果:

            var newDiv = document.createElement("DIV");
            newDiv.setAttribute("id", "obj_1000");
            document.appendChild(newDiv);
            
            alert("Added:" +
                  newDiv.getAttribute("id") + ":" +
                  newDiv.id + ":" +
                  document.getElementById("obj_1000"));
            

            奇怪...非常奇怪

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-01-16
              • 2020-04-22
              • 2017-02-06
              • 2016-04-06
              • 1970-01-01
              • 2018-11-02
              • 2011-10-28
              • 2012-05-31
              相关资源
              最近更新 更多