【问题标题】:className is not appended to the js objectclassName 未附加到 js 对象
【发布时间】:2015-08-30 00:10:35
【问题描述】:
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

标签: javascript html classname


【解决方案1】:

使用

var ob = obj.divE();
    ob.className = "className";

每次直接调用 obj.divE() 时,它都会创建一个新元素 object.so obj.divE().className = 'ClassName'; obj.divE().id= 'ClassName'; 两条线创建不同的对象。 您必须为其分配一些可重用的位置。

【讨论】:

    【解决方案2】:

    obj.divE().className = 'className'; 语句的返回值为className 字符串。您的代码创建了一个元素,修改了它的 className 属性并且实际上没有做任何事情。如果存储返回值:

    var value = obj.divE().className = 'className';
    

    那么存储的值是'className' 字符串而不是创建的元素。你必须创建元素,存储它,然后像你的第一个 sn-p 一样更新 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();
    

    【讨论】:

    • 那么使用这个值变量如何再次将className附加到元素?
    猜你喜欢
    • 2014-02-14
    • 1970-01-01
    • 2015-10-11
    • 2017-05-26
    • 2017-02-22
    • 2015-06-13
    • 2010-10-11
    • 2013-12-02
    • 2015-11-21
    相关资源
    最近更新 更多