var a = document.createElement('div');
a.id = "myDiv";
和
var a = document.createElement('div').id = "myDiv";
它们之间有什么区别,第一个有效而第二个无效?
var a = document.createElement('div');
a.id = "myDiv";
和
var a = document.createElement('div').id = "myDiv";
它们之间有什么区别,第一个有效而第二个无效?
设置id
元素的 不会返回元素。它"myDiv"
实际上返回,因此 vara
被设置为"myDiv"
而不是 div 本身。
第二个不起作用,因为 createElement 的“返回”值用于设置 id。由于这是一个赋值而不是链接,它不会将新元素的引用返回给“a”,因此会失败。
第二个不起作用,因为您正在创建一个元素,但会立即对其执行操作。该a
变量被设置为字符串“myDiv”。
foo = 'bar'
as 语句实际上返回一个值,即'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';
如果您想a
在一行中同时设置 ID 和变量,可以使用括号:
(a = document.createElement('div')).id = 'myDiv';
那是因为a = document.createElement('div')
重新调整了新创建的 DOM 节点。
如果你真的想要一条捷径,你可以写:
(window.a=document.createElement('div')).id="myDiv";
小提琴:http: //jsfiddle.net/F23cD/
在第一条语句中,您将创建的“div”类型元素放入变量“a”,然后将“a”的元素属性“id”设置为“myDiv”。然后“a”现在是元素。
在第二个声明中,您:
然后,“a”现在是“myDiv”而不是元素。
// 用这个
a.setAttribute("id","myDiv");