假设我有以下html
<ul>
<li id="a">a</li>
<li id="b">b</li>
<li id="c">c</li>
</ul>
<ul>
<li id="d">d</li>
<li id="e">e</li>
<li id="f">f</li>
</ul>
如果我使用jQuery来抓取项$('#e')
,如何确定e
相对于其兄弟d
和f
的位置或位置/索引?换句话说,我期望返回值1(如果基于零的索引)或2(如果一个基础索引),因为它是ul
列表中的第二个元素。
答案 0 :(得分:17)
简单:var idx = $('#e').index() // zero based
答案 1 :(得分:2)
答案 2 :(得分:2)
您也可以使用var idx = $("#e").prevAll().size()
答案 3 :(得分:1)
你也可以试试这个:
$(function() {
$('ul li').each(function(idx, e) {
$(this).on('click', function() {
alert(idx);
});
});
});
唯一的麻烦是,它目前会在整个页面上为所有li
编制索引。
这个给出了所有li
内容的索引。
$(function() {
$('ul li').each(function(idx, e) {
$(this).on('click', function() {
alert($('#' + $(this).attr('id')).index());
});
});
});
答案 4 :(得分:0)
function getIndex(id) {
$('ul > li').each(function() {
if ($(this).attr('id') == id) {
return i;
}
});
return 0;
}