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/

10-11 05:25
查看更多