2016-11-25 2 views
-1

だから私は、ストア機能を構築しようとしていると私は何をしたいのは、ページ上の「カートに追加」ボタンを押すことで、ストレージに、各オブジェクトの情報を保存することができていますよ。私は、forループを使って複数のアイテム/フィーチャーボックスを以下のように作成しながら、「カートに追加」ボタンごとに一意のIDを作成する方法を知りたいですか?JSでHTMLを構築する際に、一意のIDを与える方法はありますか?

// temporary javascript thingy while we build the remove catalogs 
var popularItems = 
     [ 
      { 
       "itemImageSrc" : "./images/StoreProducts/StrawberryPi2ModelB.jpg", 
       "itemImageAlt" : "placeholder", 
       "itemDescription" : "<p> Strawberry Pi 3 Model B </p>", 
       "itemPrice" : "<p>$49.95</p>", 
       "itemPopular" : "true" 
      }, 
      { 
       "itemImageSrc" : "./images/StoreProducts/StrawberryPiZero.jpg", 
       "itemImageAlt" : "placeholder", 
       "itemDescription" : "<p> Strawberry Pi Zero </p>", 
       "itemPrice" : "<p>$29.95</p>", 
       "itemPopular" : "true" 
      }, 
      { 
       "itemImageSrc" : "./images/StoreProducts/StrawberryPiCase.jpg", 
       "itemImageAlt" : "placeholder", 
       "itemDescription" : "<p> Strawberry Pi Case </p>", 
       "itemPrice" : "<p>$10.95</p>", 
       "itemPopular" : "true" 
      }, 
      { 
       "itemImageSrc" : "./images/StoreProducts/placeholder.png", 
       "itemImageAlt" : "placeholder", 
       "itemDescription" : "<p> Strawberry Pi Extension Kit </p>", 
       "itemPrice" : "<p>$149.95</p>", 
       "itemPopular" : "false" 
      } 
     ]; 

document.write('<div class="feature-container">'); 

for (var i = 0; i < popularItems.length; i++) { 

if (popularItems[i].itemPopular == "true") { 

document.writeln('<div class="feature-box">'); 
document.write('<img src="'); 
document.writeln(popularItems[i].itemImageSrc); 
document.write('" alt="'); 
    document.write(popularItems[i].itemImageAlt); 
document.writeln('">'); 

document.write('<div class="feature-box-model" id="var i">'); 
document.write(popularItems[i].itemDescription); 
document.writeln('</div>'); 

document.write('<div class="feature-box-price">'); 
document.write(popularItems[i].itemPrice); 
document.writeln('</div>'); 

document.writeln('<FORM>'); 
    document.writeln('<INPUT TYPE="button" VALUE="Add To Cart" onclick="saveData()" id="unique">'); 
document.writeln('</FORM>'); 
document.writeln('</div>'); 

} 

}

答えて

1

次に単純なアプローチのようなものかもしれません

document.writeln('<INPUT TYPE="button" VALUE="Add To Cart" onclick="saveData()" id="item_'+i+'">');

+0

私はちょうどdocument.writeIn( ")を持っていることをどこにも表示されません。 – Tremors

+0

は私の答えを編集し、それはあなたが一意の識別子をしたい部分である –

+0

パーフェクトあなたはp.phreshありがとうこれは私がそれを望んでいた正確にどのように動作します。。!に! – Tremors

0

私は明白

`for(let =0; i<n; i++){ 
    let key = 'key_'+i; 
    .... 
}' 

がニーズを満たしていないと仮定していますか?であることを

document.writeln('<INPUT TYPE="button" VALUE="Add To Cart" onclick="saveData()" id="unique">');

:あなたはこの行を変更することができ

`key = 'key_'+Math.random().toString().slice(2);` 
`// => "key_21542707442294184"` 
+0

またはSOような​​配列インデックス 'i'を使用する:' ID = "項目" + i'( '' ID = "ITEM1"、 'ID = item2' ...) – chrki

+0

最初のdoesnの私が間違って試していない限り、仕事はしません。その2番目の部分は分かりませんので、鍵と数学のランダムなものについてもう少し研究しなければなりません。 Chrki、私はそれも動作すると思ったが、私は実際には、ループが使用している数字に "i"を評価する方法を見つけることができません。それは文字通りそれを取る。 – Tremors

関連する問題