Javascript 如何找到某个元素在div中的位置?
我试图在我的div中找到图像的位置 我的HtmlJavascript 如何找到某个元素在div中的位置?,javascript,jquery,Javascript,Jquery,我试图在我的div中找到图像的位置 我的Html <div> <p>test</p> <img src='test1.jpg'/> <p>test</p> <p>test</p> <img src='test2.jpg'/> <p>test</p> <img src='test2.jpg'/> --the use
<div>
<p>test</p>
<img src='test1.jpg'/>
<p>test</p>
<p>test</p>
<img src='test2.jpg'/>
<p>test</p>
<img src='test2.jpg'/> --the user clicks this image and I want to know the time it appears. In this case, 2 is what I need.
<p>test</p>
<img src='test2.jpg'/>
<p>test</p>
</div>
我可以知道相同的图像出现了多少次,但我不能告诉用户单击了哪个图像以及它的位置。有办法做到这一点吗?非常感谢
$('img').click(function() {
var clickedIndex = $('img[src="'+ $(this).attr('src') +'"]').index(this) + 1;
console.log(clickedIndex);
});
在这里,我构建了一个与单击的图像具有相同源属性的图像属性搜索,然后调用传递单击的元素作为引用。正如索引
所示,我们添加1
如果拥有相同的祖先div
很重要,只需使用最近的和查找来调整它,就像最初一样:
var clickedIndex =
$(this).closest('div')
.find('img[src="'+ $(this).attr('src') +'"]').index(this) + 1;
要获取对单击图像的引用,只需在处理程序中使用this
关键字。您可以将其包装在jQuery对象$(this)
中,然后对其调用jQuery方法
另外,通过你问题的代码注释,我假设position
实际上是指元素的索引,但是如果你想得到元素的文字位置,可以使用(相对于文档)和(相对于父级)方法
旁注:如果您需要计算同一来源的图像数量,您可以使用以下更简单的方法:
同样,上面假定在事件处理程序的作用域内,此
引用图像元素。不过,您可以轻松地对其进行调整,以查询任何src
在这里,我构建了一个与单击的图像具有相同源属性的图像属性搜索,然后调用传递单击的元素作为引用。正如索引
所示,我们添加1
如果拥有相同的祖先div
很重要,只需使用最近的和查找来调整它,就像最初一样:
var clickedIndex =
$(this).closest('div')
.find('img[src="'+ $(this).attr('src') +'"]').index(this) + 1;
要获取对单击图像的引用,只需在处理程序中使用this
关键字。您可以将其包装在jQuery对象$(this)
中,然后对其调用jQuery方法
另外,通过你问题的代码注释,我假设position
实际上是指元素的索引,但是如果你想得到元素的文字位置,可以使用(相对于文档)和(相对于父级)方法
旁注:如果您需要计算同一来源的图像数量,您可以使用以下更简单的方法:
同样,上面假定在事件处理程序的作用域内,此
引用图像元素。不过,您可以轻松地对其进行调整,以查询任何src
。您可以使用索引
$('img').click(function(){
index = $(this).closest('div').find('img').index(this) + 1;
});
您可以使用索引
$('img').click(function(){
index = $(this).closest('div').find('img').index(this) + 1;
});
你的意思是除了this.offsetLeft
和this.offsetTop
?如果有人单击div,你想要什么输出?img的src属性?你的意思是除了this.offsetLeft
和this.offsetTop
?那么如果有人点击div,你想要什么输出?img的src属性?第二个问题是什么?如果第二个问题的意思是获取对单击图像的引用,只需在处理程序内部使用this
。我的意思是获取位置,在最后一句话的末尾询问。我自己也知道怎么做,只是想说清楚,但你的答案已经在这里了,而且是经过深思熟虑的,除了一件事。我认为建议这样做是明智的。“但是我不能告诉用户点击了哪个图像以及它的位置。”我认为OP的位置实际上是指索引,而不是偏移量/位置,请看他问题代码的注释。我现在看到代码注释,以前没有。我的坏+1不管怎样。第二个问题呢?如果第二个问题的意思是获取对单击图像的引用,只需在处理程序内部使用this
。我的意思是获取位置,在最后一句话的末尾询问。我自己也知道怎么做,只是想说清楚,但你的答案已经在这里了,而且是经过深思熟虑的,除了一件事。我认为建议这样做是明智的。“但是我不能告诉用户点击了哪个图像以及它的位置。”我认为OP的位置实际上是指索引,而不是偏移量/位置,请看他问题代码的注释。我现在看到代码注释,以前没有。我的坏+不管怎样。