魅惑的な質問。 |
var parents = $(".myWidespreadClass").parent(); // Not plural!
while (parents[0]) {
// Process them, e.g.
parents.each(function() { /* ... */ });
// Get the next tier
parents = parents.parent(); // Not plural!
}
Live example:私はあなたがこのようなループ、何かをしたいと思いますLive source -
while (parents[0] && parents[0].nodeName !== "BODY") {
あなたは少し早くそれよりも終了する場合があり、早期終了する可能性が更新が、以下を参照してください、例えば:...あなたのニーズに応じて。私はこの例でやった。以下を参照してください。
更新は実際に、あなたは、代わりにこのような何かの両親を処理しているとき、おそらく、フィルタリングほう早期終了と注意する必要があります:
Live exampleを| Live source
var parents = $(".myWidespreadClass").parent();
while (parents[0]) {
// Process them, e.g.
parents.each(function() {
if ($.contains(document.body, this)) {
// This one is under `body`, process it
display("Visiting " + this.nodeName + "." + this.className);
}
});
// Get the next tier
parents = parents.parent(); // Not plural!
}
要素のあなたの最初のセットは、DOMで乱暴に異なるレベルにあってもよい、とあなたはすぐに他の人よりも、それらのいくつかのための最上位の要素に達するだろうということで理由。上記のbody
のチェックはあなたのニーズに適していないかもしれませんが、あなたはそのアイデアを得るでしょう。
'parent()'を使った再帰関数ですか? – jgauffin
あなたは、親を再帰的に反復することを意味しますか? – redShadow
parentsUntil関数をチェックアウトしてください:https://api.jquery.com/parentsUntil/ –