首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定单击元素的父元素列表中的位置

确定单击元素的父元素列表中的位置
EN

Stack Overflow用户
提问于 2014-04-16 19:48:28
回答 2查看 21关注 0票数 0

下面我有一个类似于简化HTML的元素列表。当其中一个图像被单击时,如果触发了某个JavaScript,那么单击的图像就会变成this.theImage

现在我需要获取图像的位置;例如,如果单击了第一个图像,位置应该是1,如果单击了第二个,则应该是2,依此类推。

我可以使用var elements = $('.image-preview', '#gallery');,用image-preview类获取所有元素的列表,然后循环遍历这些元素,并将ID与图像匹配,但这看起来非常低效。

还有其他更有效的方法来完成这个任务吗?

代码语言:javascript
复制
<div id="gallery">
    <div class="image-preview">
        <img id="image-1" src="http://www.mysite.com/image1.jpg" />
    </div>
    <div class="image-preview">
        <img id="image-2" src="http://www.mysite.com/image2.jpg" />
    </div>
    <div class="image-preview">
        <img id="image-3" src="http://www.mysite.com/image3.jpg" />
    </div>
    <div class="image-preview">
        <img id="image-4" src="http://www.mysite.com/image4.jpg" />
    </div>
</div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-16 19:55:52

不确定我明白了,你可以拍到这样的图片

代码语言:javascript
复制
$('.image-preview img').on('click', function() {

});

然后得到你要做的索引

代码语言:javascript
复制
$('.image-preview img').on('click', function() {
    var index = $('.image-preview img').index(this);
});

请注意,它是基于零的

FIDDLE

票数 1
EN

Stack Overflow用户

发布于 2014-04-16 19:55:59

你可以让Array.prototype.indexOf帮你做:

代码语言:javascript
复制
var gallery = document.getElementById('gallery'),
    els = [].slice.call(gallery.getElementsByTagName('img'));
gallery.onclick = function(e) {
    if(e.target.tagName.toLowerCase() !== 'img') return;
    var position = els.indexOf(e.target);
};

Demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23118827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档