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 に答える