这两种创建元素的方法有什么区别
What is the difference between these two ways to create an element?
var a = document.createElement('div');
a.id = "myDiv";
和
var a = document.createElement('div').id = "myDiv";
它们之间有什么区别,以至于第一个有效,第二个不起作用?
设置元素的id
不会返回元素。它实际上返回"myDiv"
,因此 var a
被设置为 "myDiv"
而不是div 本身。
第二个不起作用,
因为来自createElement的"return"值用于设置id。由于这是一个赋值而不是链接,因此它不会将对新元素的引用返回到"a",因此失败。
第二个不起作用,因为您正在创建一个元素,但会立即对其执行操作。a
变量设置为字符串"myDiv"。
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 节点。
如果你真的想要一个简短的路,你可以写:
(window.a=document.createElement('div')).id="myDiv";
小提琴 : http://jsfiddle.net/F23cD/
在第一个语句中,您将创建的类型为"div"的元素放入变量"a"中,然后将"a"的元素属性"id"设置为"myDiv"。那么"a"现在是元素。
在第二条语句中,您:
- 创建类型为 "div" 的元素: document.createElement('div')
- 将元素属性"id"设置为"myDiv",然后
- 将"a"设置为"myDiv"也
然后,"a"现在是"myDiv"而不是元素。
//使用这个
a.setAttribute("id","myDiv");
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- 在ember/handlers中使用value和valueBinding有什么区别
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- Math.min()和Math.max()之间有什么区别?在Javascript中
- angularjs中的ng网格和ui网格有什么区别
- webpack开发模式和生产构建模式之间有什么区别
- 缓存!saveLocations()和addLocation()函数有什么区别
- 关于承诺/A+规范,术语“当时可”和“承诺”之间有什么区别
- 以下两者在javascript中有什么区别
- jquery.js和jquery.lite.js有什么区别
- 通过Nuget安装Angular JS和Angular JS核心有什么区别
- XMLHttpRequest对象的open()和send()方法之间有什么区别
- 这两种不同的创建对象文字的方法有什么区别
- jQuery中这两个词有什么区别
- 在Javascript语法中:和::和:::有什么区别
- getElementById 和 getElementsByClassName 有什么区别?
- (typeof variable === “function”) 和 jQuery.isFunction() 有什么区别
- 在使用JS的Ajax调用中,ajaxComplete和beforesend之间有什么区别
- $(e.target).find和template.find('input').value之间有什么区别
- 在javascript中,在变量名之前使用var有什么区别/优势吗