我可以使用indexOf(输入)吗?

时间:2012-12-19 21:51:48

标签: javascript

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)
}

我正在建立一个有三张图像的评分量表。我想告诉用户他点击的三个图像中的哪一个。 onClick(this)上的所有三个图像上都有onClick事件。然后,我试图使用indexOf(输入),其中输入是指从onclick(this)传递的参数(this)。它不起作用。 ¿有建议吗?感谢。

1 个答案:

答案 0 :(得分:3)

在其上调用indexOf将不起作用,因为结果是(实时)NodeList,并且不提供数组方法。但是,您仍然可以在节点列表中应用Array indexOf method(使用.call Function met),因为它是通用的:

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

请注意,较旧的IE不支持indexOf,您需要shim it