document.getElementById()获得Null

时间:2013-05-16 23:00:24

标签: javascript html

function createDiv(nameId,width,height,color)
{
    try
    {
        // Initialize And Create Div
        if(document.createElement('div'))
        {
            // document.write("<br>Create Div Success");
            if((nameId.length!=0) && (width>0) &&(height>0) && (color.length!=0))
            {
                //creating div
                var divCreate = document.createElement('div');

                divCreate.id=nameId;
                document.getElementById(nameId).width = width;
                document.getElementById(nameId).height = height;
                document.getElementById(nameId).background = color;
                document.getElementById(nameId).backgroundColor = "Red";
                document.body.appendChild(divCreate);
                document.write(" <br>Create Div Success And Added To Body");

                // document.write(" <br>Create Div Success And Added To Body");
            }
            else
            {
                //     document.write("<br>All Field Value Required");
            }
        }
        else
        {
            document.write("<br>Unable To Create Div");
        }
    }
    catch(e)
    {
        document.write("<br>"+e);
    }
}

document.getElementById()正在获得Null。我正在尝试使用javascript创建一个DIV并为其指定一些宽度/高度和颜色,但它不起作用。但是,如果我使用下面的代码,则会创建div,但它在屏幕上不可见。如果我使用函数createDiv()则不起作用。

divCreate.id=nameId;
divCreate.width = width;
divCreate.height = height;
divCreate.background = color;
divCreate.backgroundColor = "Red";
document.body.appendChild(divCreate);

3 个答案:

答案 0 :(得分:1)

createElement只创建元素.. 你需要先将元素添加到文档中才能找到它。

尝试添加先前添加的附件,这应该有效:

      //creating div
      var divCreate = document.createElement('div');

      divCreate.id=nameId;
      document.body.appendChild(divCreate); <-----------------------
      document.getElementById(nameId).width = width;
      document.getElementById(nameId).height = height;
      document.getElementById(nameId).background = color;
      document.getElementById(nameId).backgroundColor = "Red";

      document.write(" <br>Create Div Success And Added To Body");

答案 1 :(得分:0)

在您追加它之前,您似乎试图引用它。

答案 2 :(得分:0)

您的代码中需要改进/修复一些项目:

  • 你已经有了这个对象,所以你不需要使用getElementById函数来获取它(另外,你试图在将对象添加到正文之前获取对象)
  • 您需要使用.style访问对象的css属性
  • 请勿使用document.write功能打印状态,因为如果页面已经加载,它将重写页面。

以下是更新后的代码:

//creating div
      var divCreate = document.createElement('div');

      divCreate.id=nameId;
      //to access the width and other css properties, you need to use the style
      divCreate.style.width = width;
      divCreate.style.height = height;
      divCreate.style.background = color;
      divCreate.style.backgroundColor = "Red";
      document.body.appendChild(divCreate);