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();
最佳答案
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();
关于javascript - className未附加到js对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30829221/