1

我正在调用这个函数

   el=DOM.create({tag:"div",css:{backgroundColor:"#000000",color:"green"},html:"abc"});
   $("#fb_dv").append(el);

我的功能在这里

DOM={
    create:function(data){
        if(data.tag){
            d=document;
            doc=d.createElement(data.tag);
            for(var v in data){
                 if(v=="css"){
                     for(key in data[v]){
                        prop=doc.style;
                        prop.key=data[v][key]
                     }
                 }
                 if(v=="html"){
                     doc.innerHTML=data[v]
                 }
            }

            return doc;
        }
    }
}

问题是这个函数没有设置css属性

4

1 回答 1

3

问题出在应该设置样式的 for 循环中。您需要使用方括号语法来设置正确的属性:

for(key in data[v]){
    prop = doc.style;
    //prop.key = data[v][key]... change this to this:
    prop[key] = data[v][key];
}

这是一个工作示例

附带说明一下,您缺少很多var语句,因此所有变量都泄漏到了全局范围内,并且还缺少很多分号。

于 2012-04-13T14:59:03.533 回答