这两种创建元素的方法有什么区别?

时间:2012-06-12 15:27:08

标签: javascript

var a = document.createElement('div');

a.id = "myDiv";

var a = document.createElement('div').id = "myDiv";

它们之间有什么区别,第一个有效,第二个无效?

7 个答案:

答案 0 :(得分:9)

设置元素的id不会返回元素。它实际返回"myDiv",因此var a设置为"myDiv"而不是div本身。

答案 1 :(得分:2)

第二个不起作用,因为createElement的“return”值用于设置id。由于这是一个赋值而不是链接,它不会将对新元素的引用返回“a”,从而失败。

答案 2 :(得分:0)

第二个不起作用,因为您正在创建一个元素,但立即对其执行操作。 a变量设置为字符串“myDiv”。

答案 3 :(得分:0)

foo = 'bar'作为语句实际返回一个值'bar'

a = document.createElement('div'); //this sets `a` to DOM Node

a = document.createElement('div').id = 'myDiv'; //this sets `a` to 'myDiv'
//it's the same as
document.createElement('div').id = 'myDiv';
a = 'myDiv';

不要这样做

如果您想在一行中同时设置ID和a变量,可以使用parens:

(a = document.createElement('div')).id = 'myDiv';

那是因为a = document.createElement('div')返回了新创建的DOM节点。

答案 4 :(得分:0)

如果你真的想要一个简短的方法,你可以写:

(window.a=document.createElement('div')).id="myDiv";

小提琴:http://jsfiddle.net/F23cD/

答案 5 :(得分:0)

在第一个语句中,将创建的“div”类型元素放入变量“a”,然后将“a”的元素属性“id”设置为“myDiv”。然后“a”现在是元素。

在第二个声明中:

  1. 创建“div”类型的元素:document.createElement('div')
  2. 将元素属性“id”设置为“myDiv”和
  3. 将“a”设为“myDiv”也
  4. 然后,“a”现在是“myDiv”而不是元素。

答案 6 :(得分:0)

//使用此

a.setAttribute(" ID"" myDiv&#34);