var obj = document.createElement('div');
obj.className = 'className';
这将输出附加了类的div元素。
var obj = {
divE : function(){
return document.createElement('div')}
}
obj.divE().className = 'className';
这不会将类名附加到div元素,即obj.divE()
可能是什么原因?如何将类附加到obj.divE();
答案 0 :(得分:3)
obj.divE().className = 'className';
语句的返回值为className
字符串。您的代码会创建一个元素,修改它的className
属性,并且实际上没有做任何事情。如果存储返回的值:
var value = obj.divE().className = 'className';
然后存储的值是'className'
字符串而不是创建的元素。您必须创建元素,将其存储,然后像第一个代码段一样更新className
。
如果要创建辅助函数,可以编写代码:
var obj = {
divE : function(cls) {
var div = document.createElement('div');
if ( cls ) {
div.className = cls;
}
return div;
}
}
var createdElement = obj.divE('className');
var anotherElement = obj.divE();
答案 1 :(得分:2)
使用
var ob = obj.divE();
ob.className = "className";
每次直接调用obj.divE()时都会创建一个新的元素object.so
obj.divE().className = 'ClassName';
obj.divE().id= 'ClassName';
两条线都创造了不同的对象
你必须为它分配一些重用的地方。