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 事件 onClick(this)。然后,我尝试使用 indexOf(input),其中 input 是指从 onclick(this) 传递的参数 (this)。它不工作。 ¿任何替代建议?谢谢。
最佳答案
对其调用 indexOf
将不起作用,因为结果是(实时)NodeList
,并且不提供 Array 方法。然而,您仍然可以申请 Array indexOf
method在节点列表上(通过使用 .call
Function met ),因为它是通用的:
var images = input.parentNode.getElementsByTagName("img");
var index = Array.prototype.indexOf.call(images, input);
请注意,较旧的 IE 不支持 indexOf,您需要 shim it .
关于javascript - 我可以使用 indexOf(input) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13961862/