这个让我难住了。
<div id="container">
<div id="store"></div>
<div id="contact"></div>
</div>
我正在寻找作为“容器”子级的联系人 div 位置。所以为了更加清楚,如果我正在寻找“联系人”的位置,我需要 jquery 返回数字 1。
任何帮助是极大的赞赏!谢谢!
您可以尝试以下方法:
$('#contact').prevAll('div').length + 1
如获取先前 div 兄弟的长度。如果您想要一个从零开始的索引,请省略 +1。
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.
也许找到父节点并遍历子节点,直到找到节点,一路计数。
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 方法。
像这样的东西应该工作:
var ids = $("#container").children().map(function(n, i) {
return n.id;
});
var requiredIndex = jQuery.inArray("contact", ids);