获取DOM中元素的当前位置

时间:2014-05-21 12:56:56

标签: javascript jquery

我需要在DOM中找到元素当前位置(最好在点击时)。

使用jQuery,如果我事先知道这个位置,我就会得到它:

$('li').get(3);

但有时我依靠$(this)来获得当前位置:

HTML:

http://jsfiddle.net/JBjeg/

<ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    <li>Four</li>
</ul>

JS:

 $('li').click(function(){

     // this does not work
    console.log($(this).get());

    // this does, but I won't know which is clicked
    console.log($('li').get(3));

});

对我来说,获得当前职位的最佳途径是什么?最好是一个数字,所以我可以在其他地方使用它。

4 个答案:

答案 0 :(得分:3)

您可以使用index获取点击元素的数量。

$(this).index();

索引将从0

开始
$('li').click(function(){
     // this does not work
    console.log($(this).get());   
    // Will get index
    console.log($(this).index());
    // this does, but I won't know which is clicked
    console.log($('li').get(3)); 
});

<强>更新

根据您在上一个回答中的评论

如果您想要与所点击的li的索引相关的图片,您可以试试这个

var index = $(this).index(); // Get index
var img = $("img").get(index); // image selector may vary

Fiddle

答案 1 :(得分:1)

您可以使用.index()

  

从匹配的元素中搜索给定元素。

实施例

$("li").index('ul')

答案 2 :(得分:0)

您正在寻找index() method

$('li').click(function(){
    console.log($(this).index());
});

updated demo fiddle

答案 3 :(得分:0)

您可以使用index:

$('li').click(function() {
    console.log($(this).index());
});

而且,您可以使用$ .each:

$('li').each(function(index) {
    console.log([$(this), index]);
});