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

Javascript 这两种创建元素的方法有什么区别?,javascript,Javascript,及 它们之间有什么区别,第一个有效,第二个无效?设置元素的id不会返回元素。实际上,它返回“myDiv”,因此vara被设置为“myDiv”,而不是div本身。第二个选项在创建元素时不起作用,但会立即对其执行操作。a变量改为字符串“myDiv”。foo='bar'作为一条语句,实际上返回一个值,即'bar' var a = document.createElement('div').id = "myDiv"; 永远不要这样做 如果要在一行中同时设置ID和a变量,可以使用parens: a =


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

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

第二个选项在创建元素时不起作用,但会立即对其执行操作。
a
变量改为字符串“myDiv”。

foo='bar'
作为一条语句,实际上返回一个值,即
'bar'

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

永远不要这样做 如果要在一行中同时设置ID和
a
变量,可以使用parens:

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

这是因为
a=document.createElement('div')
重新运行新创建的DOM节点。

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

如果你真的想走捷径,你可以写:

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

Fiddle:

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

在第二项声明中,你:

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

    //使用这个


    a、 setAttribute(“id”、“myDiv”)

    但是
    .createElement()返回一个元素,为什么我不能从那里操作它呢?”大卫:因为你已经有了。您已经引用了它的
    .id
    属性。所以
    var a=document.createElement('div').id=“myDiv”
    创建一个元素,设置其
    id
    ,返回字符串
    “myDiv”
    ,以存储在
    a
    变量中,并立即使该元素可用于垃圾收集,因为它没有未完成的引用。由于没有对它的引用,因此不能对它执行任何其他操作,也不能将其用于任何用途。但是
    a
    是一个全局变量,代码的可读性要差得多。我建议将声明分成两行;更正确,更可读。
    (a = document.createElement('div')).id = 'myDiv';
    
    (window.a=document.createElement('div')).id="myDiv";