4
function myFunction(input){
var number_of_images = input.parentNode.getElementsByTagName("img")
var image_clicked = number_of_images.indexOf(input)
alert ("you clicked on image number "+image_clicked)
}

3 つの画像を使用して評価尺度を作成しています。3 つの画像のどれをクリックしたかをユーザーに伝えたいと考えています。onClick(this) の 3 つの画像すべてに onClick イベントがあります。次に、indexOf(input) を使用しようとしています。ここで、input は onclick(this) から渡されたパラメーター (this) を参照します。動いていない。¿代替案はありますか? ありがとう。

4

1 に答える 1

3

indexOf結果は(ライブ)NodeListであり、配列メソッドを提供しないため、これを呼び出すことはできません。それでも、一般的であるため、(関数metを使用して)ノードリストにArrayindexOfメソッドを適用できます。.call

var images = input.parentNode.getElementsByTagName("img");
var index = Array.prototype.indexOf.call(images, input);

古いIEはindexOfをサポートしていないことに注意してください。これは、シムする必要があります。

于 2012-12-19T22:00:36.033 に答える