1

Jquery を使用してドキュメントにインデックスを付けindexました。特定のインデックス値が与えられた場合、「最も近い」要素を「検索」したいと思いますclass。これは私にはうまくいきません:

$(variableIndexNumber).closest('.class');

その理由は.class、ドキュメント内のどこにでもある可能性があることを意味するため、位置が変わることがあるためです。兄弟である場合もあれば、親である場合もあり、ドキュメントの上または下にある場合もあります。したがって、通常のセレクターnext closest first nextAllなどは機能しません(ドキュメントツリーのため)

.class(変数で指定された) 他の要素に最も近いものを取得するにはどうすればよいですか?

4

1 に答える 1

2

.prevUntil('.class').nextUntil('.class')、を使用して、.parentsUntil('.class')それらのサイズを比較します。

サイズが最も小さいものは、DOM 構造の観点から要素に最も近いものです。

更新: プロセスでは、実際に目的のターゲットに到達するために.andSelf().filter()と 典型的な.next()とも必要になります。.prev()デモが更新されました。コードがより一般的になっていることがわかります。

以下の概念実証で行ったように、おそらくソート機能も必要になるでしょう。

デモ: http://jsfiddle.net/terryyounghk/FzA78/

補足: はありません.childrenUntil()。これは、DOM ツリーの外側に分岐しているためであり、ドキュメント ルートに向かって内側に分岐しているのではありません。しかし、私の推測では、$('.me').find('.class')最初に を実行し、次にそれぞれに対して を実行してから.parentsUntil('.me')、サイズを比較できます。これが機能するかどうかはわかりません。

于 2013-04-24T14:31:45.570 に答える