2016-08-28 4 views
-2

私はたくさんのスタイルプロパティを作成しましたが、私はforループを使ってそれらをdiv要素に追加したいと思います。私は私の構文が間違っているかを把握することはできません。スタイルプロパティをjs配列に格納することはできますか?

function createShot(){ 

var shot = new shotConstructor(spaceship.x,(765-(spaceship.y+15)),15,15,"#000000","","","","","",""); 
var createDiv = document.createElement("div"); 
var AddId = createDiv.setAttribute("id","shot"); 
var element = document.getElementById("dv_grid"); 
var append = element.appendChild(createDiv); 
var shotStyle=document.getElementById('shot').style; 
var style=[width=shot.w+"px",height=shot.h+"px",left=shot.x+"px",top=shot.y+"px",backgroundColor="#000000",position="absolute"]; 

for(i=0;i<6;i++){ 
    shotStyle+style[i]; 

} 
+0

forループを開始する '}'がありません。 –

+1

'shotStyle + style [i];'何もしません – hindmost

+0

何をしたらいいですか? –

答えて

0
[width=shot.w+"px"] 
^^^^^ 

グローバル変数であること。

[width=shot.w+"px"] 
     ^^^^^^^^^^^ 

これは、グローバル変数に割り当てる値です。

値はまたです。

これは、プロパティ名に関連付けられていないスタイルプロパティ値の配列を提供します。


shotStyle+style[i]; 

これは、(あなたはどこにでもそれを割り当てていないので)、文字列にするCSSStyleDeclarationを変換し、その文字列に(何のプロパティ名は覚えていない!)スタイルプロパティの値を追加して、結果を破棄します。


プロパティ名に値を格納する必要があります。順序は問題ではないので、配列の代わりにオブジェクトを使うことでそれを行う必要があります。

var style = { 
    width: shot.w + "px", 
    height: shot.h + "px", 
    left: shot.x + "px", 
    top: shot.y + "px", 
    backgroundColor: "#000000", 
    position: "absolute" 
}; 

オブジェクトをループし、各プロパティの名前と値の両方を使用するには、適切な構文が必要です。

for (var prop in style) { 
    shotStyle[prop] = style[prop]; 
} 
関連する問題