これは私を困惑させました。
<div id="container">
<div id="store"></div>
<div id="contact"></div>
</div>
「コンテナ」の子として連絡先のdivの位置を探しています。明確にするために、「連絡先の位置」を探している場合、数字の 1 を返すには jquery が必要です。
どんな助けでも大歓迎です!ありがとう!
次のようなものを試すことができます:
$('#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);