如何解决这个javascript函数

时间:2012-04-13 14:54:10

标签: javascript json

我正在调用此功能

   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属性

1 个答案:

答案 0 :(得分:3)

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

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

这是working example

作为旁注,你有很多遗漏的var语句,所以你的所有变量都泄漏到了全局范围内,你也有很多缺失的分号。