jQuery:只给定一个元素 ID 名称,它如何找到它在 dom 中相对于其父元素的位置?

发布于 2024-08-08 08:05:04 字数 261 浏览 5 评论 0原文

这个把我难住了。

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

我正在寻找作为“容器”子级的联系人 div 位置。所以要特别明确的是,如果我正在寻找“联系人的位置”,我需要 jquery 返回数字 1。

非常感谢任何帮助! 谢谢!

This one has me stumped.

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

I'm looking for the contact divs position as child of "container". So just to be extra clear, if i'm looking for 'contact's position, i need jquery to return the number 1.

any help is greatly appreciated!
thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

落花浅忆 2024-08-15 08:05:04

您可以尝试类似的操作:

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

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

You could try something like:

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

as in get the length of previous div siblings. Omit the +1 if you want a zero-based index.

梦里梦着梦中梦 2024-08-15 08:05:04
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. 
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. 
羁拥 2024-08-15 08:05:04

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

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 方法。

Maybe find the parent and iterate through the children until you find the node, counting along the way.

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";
}

You could turn that into a jQuery method of course.

小梨窩很甜 2024-08-15 08:05:04

像这样的东西应该有效:

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

var requiredIndex = jQuery.inArray("contact", ids);

Something like this should work:

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

var requiredIndex = jQuery.inArray("contact", ids);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文