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”
,因此vara
被设置为“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”现在就是元素了 在第二项声明中,你:
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";