3

これは私を困惑させました。

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

「コンテナ」の子として連絡先のdivの位置を探しています。明確にするために、「連絡先の位置」を探している場合、数字の 1 を返すには jquery が必要です。

どんな助けでも大歓迎です!ありがとう!

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 に答える