3

这个让我难住了。

<div id="container">
    <div id="store"></div>
    <div id="contact"></div>
</div>

我正在寻找作为“容器”子级的联系人 div 位置。所以为了更加清楚,如果我正在寻找“联系人”的位置,我需要 jquery 返回数字 1。

任何帮助是极大的赞赏!谢谢!

4

4 回答 4

2

您可以尝试以下方法:

$('#contact').prevAll('div').length + 1

如获取先前 div 兄弟的长度。如果您想要一个从零开始的索引,请省略 +1。

于 2009-10-18T23:40:26.277 回答
0
var el = document.getElementById("contact");
var i = 0;
while (el.previousSibling != null)
{
   el = el.previousSibling;
   i = i + 1;
}
// i is the index of the item. 
于 2009-10-18T23:40:14.120 回答
0

也许找到父节点并遍历子节点,直到找到节点,一路计数。

function findPos(id) {
  var child = $('#' + id), children = child.parent().children();
  for (var i = 0; i < children.length; ++i)
    if (children.get(i) == child) return i;
  throw "makes no sense";
}

你当然可以把它变成一个 jQuery 方法。

于 2009-10-18T23:40:18.517 回答
0

像这样的东西应该工作:

var ids = $("#container").children().map(function(n, i) {
    return n.id;
});

var requiredIndex = jQuery.inArray("contact", ids);
于 2009-10-18T23:45:11.407 回答