获取DIV索引值

时间:2010-01-25 11:22:09

标签: jquery jquery-selectors

我在这里遇到问题,请帮忙。我的要求是点击div的索引值。有2个列表,我需要调用函数doSomething();仅当用户单击第一个div集时。无论如何我能实现它。

脚本和HTML如下

$(document).ready(function() {
 $(".list-wrapper li").click(function() {
    var index = $(".list-wrapper div").index(this);
    alert(index);
    });
});

<div class="list-wrapper">
<ul>
<li>List 1</li>
<li>List 2</li>
<li>List 3</li>
</ul>
</div>

<div class="list-wrapper">
<ul>
<li>List 1</li>
<li>List 2</li>
<li>List 3</li>
</ul>
</div>

请帮忙......

4 个答案:

答案 0 :(得分:3)

jQuery具有强大的selectors,因此通常您不需要在事件发生后检查索引。例如:

对于您网页上的第一个div:

$(".list-wrapper:first").click(doSomething);

对于每个列表中的第一个<li>

$(".list-wrapper li:first-child").click(doSomething);

如果您仍想查找索引,则需要搜索所点击的div的父li。此外,选择器.list-wrapper div为空 - 您在div中没有任何list-wrapper。这将有效:

var parent = $(this).closest('div')
var index = $(".list-wrapper").index(parent);

答案 1 :(得分:1)

如果它只需要在第一个上使用:first selector

http://api.jquery.com/first-selector/

$("div.list-wrapper:first").find("li").click(function() {...

答案 2 :(得分:1)

有很多方法可以做到这一点:

$('div.list-wrapper').first().click(function() { doSomething(); });

$("div.list-wrapper:first").click(function() { doSomething(); });

$('div.list-wrapper').eq(0).click(function() { doSomething(); });

是第一个浮现在脑海中的人。 Pro-tip,包括类之前的元素类型(div.blah比.blah快)

或者只是获取索引:

var index = $('div.list-wrapper').index(this);

将'this'替换为父项的特殊性

答案 3 :(得分:0)

试试这个:

<ul><li id="foo">foo</li><li id="bar">bar</li><li id="baz">baz</li></ul>


var listItem = document.getElementById('bar');
alert('Index: ' + $('li').index(listItem));

有关详情,请参阅此处: http://api.jquery.com/index/