javascript
2016-04-12 10 views -4 likes 
-4

私はそれをforループに入れる方法が見つからなければ、巨大なスクリプトを用意しています。これをforループに変更するにはどうすればよいですか?

if(buildLevel >= 2){ 
    $("#house1").html("<img style='width: 200px; height: 150px; top:0; left: 0; position: absolute;' data-u='image' src='images/house1.jpg' />" ); 
} 
if(buildLevel >= 3){ 
    $("#house2").html("<img style='width: 200px; height: 150px; top:0; left: 0; position: absolute;' data-u='image' src='images/house2.jpg' />" ); 
} 
if(buildLevel >= 4){ 
    $("#house3").html("<img style='width: 200px; height: 150px; top:0; left: 0; position: absolute;' data-u='image' src='images/house3.jpg' />" ); 
} 

ご覧のとおりです。イメージ名を含むすべての数字は毎回1ずつ増えます。だから余分な「家」が来るとすれば、それは次のようになります:

if(buildLevel >= 5){ 
    $("#house4").html("<img style='width: 200px; height: 150px; top:0; left: 0; position: absolute;' data-u='image' src='images/house4.jpg' />" ); 
} 

私は誰でも助けてくれることを願っています。私は良い解決策を見つけることができませんでした。

答えて

1

あなたはforループの終了条件として構築レベルを使用して、次のように行うことができます:

for (var i = 1; i < buildLevel; i++) { 
    $("#house" + i).html("<img style='width: 200px; height: 150px; top:0; left: 0; position: absolute;' data-u='image' src='images/house'+i+'.jpg' />" ); 
} 
+1

srcは 'images/house' + i + '.jpg'となるはずです – hooda

+0

これを最もクリーンなソリューションとして使用してください。ありがとう –

+0

男はあなたが正しい答えではないことを急いでいるかもしれない参照してください。家はカウンターのそれよりも少なくなければなりません。 –

1
for (var i=1 ; i< 6; i++){ 
if(buildLevel >= i){ 
     $("#house"+i).html("<img style='width: 200px; height: 150px; top:0; left:   0; position: absolute;' data-u='image' src='images/house'+i+'.jpg' />" ); 
    } 
} 
+0

を男の家は、カウンターの後、1以下でなければなりませんを参照してください。 、それは明らかに問題に言及しています。私の答えを見てください。 –

0

for(i = 1; i<=buildLevel;i++){ 
 
    if(buildLevel >= i){ 
 
    var id = "house" + i; 
 
    var imgEle = "<img style='width: 200px; height: 150px; top:0; left:0; position: absolute;' data-u='image' src='images/" + id + ".jpg' />"; 
 
    $("#" + id).html(imgEle ); 
 
    } 
 
}

関連する問題