0

私のプロジェクトの目標は、ユーザーが 2 つの画像をクリックする、一致する画像ゲームを作成することです。画像をクリックするたびに、別の画像に反転します。2 つの画像が一致する場合は、2 つの画像を削除 (または非表示) します。すべての写真が削除されると、ゲームは完了します。

次のような HTML のスニペットがあります。

<body>
    <img src = "somepicture.jpg" onclick = "SomeFunction()" id = "pic0">
    <img src = "someotherpicture.jpg" onclick = "SomeFunction()"  id = "pic1">
    ...etc...
</body>

各要素を生成し、各要素に属性を与える JavaScript コードもあります。

img を生成するたびに、自分で宣言したピース オブジェクトにリンクしたいと考えています。ピース オブジェクトの考え方は、メンバー変数の状態を格納できるようにすることです。これにより、画像が下向き (クリックされていない) か、上向き (選択されている) かが決まります。しかし、各 img 要素の id 属性を、作成した piece オブジェクトにリンクする方法がわかりません。または、これがこの問題を解決する最善の方法である場合....

ピースの配列を作ろうと考えていました。配列のインデックスは、img 要素の id 属性の最後の文字と一致する必要があります。

たとえば、piece[10] は document.getElementById("pic10") にマップされます。しかし、これを達成する方法がわかりません。

ご意見をお寄せいただきありがとうございます。

4

3 に答える 3

0

配列にはテキスト キーを含めることができます。それを使用します。

var pieces = [];
pieces['pic10'] = "active";
于 2012-10-02T19:38:37.170 に答える
0

非常に単純ですが、非常に洗練されたソリューションではありません。プレフィックスと配列のインデックスから id 文字列を作成するだけです。

配列内のインデックス i をマッピングするには、

document.getElementById("pic" + i)
于 2012-10-02T19:39:46.860 に答える
0

属性の代わりにonclick、「クリック」イベント ハンドラーを画像に添付します。イベント ハンドラーは、イベント オブジェクトを最初の属性として受け取ります。イベント オブジェクトのtarget属性には、イベントを発生させた dom 要素への参照が含まれています。そのため、イベントを発生させた画像の id を で取得できますevent.target.id

于 2012-10-02T19:41:06.937 に答える