javascript - until - jquery sibling




Wie bekomme ich die n-te Ebene Eltern eines Elements in jQuery? (9)

Wenn ich zum Beispiel das Elternelement der dritten Ebene des Elements bekommen möchte, muss ich $('#element').parent().parent().parent() schreiben $('#element').parent().parent().parent() Gibt es eine optimale Methode dafür?


Abhängig von Ihren Anforderungen, wenn Sie wissen, welcher Elternteil, nach dem Sie suchen, kann den Selektor .parents () verwenden.

ZB: http://jsfiddle.net/HenryGarle/Kyp5g/2/

<div id="One">
    <div id="Two">
        <div id="Three">
            <div id="Four">

            </div>
        </div>
    </div>
</div>


var top = $("#Four").parents("#One");

alert($(top).html());

Beispiel mit Index:

//First parent - 2 levels up from #Four
// I.e Selects div#One
var topTwo = $("#Four").parents().eq(2);

alert($(topTwo ).html());

Da parents() eine Liste zurückgibt, funktioniert das auch

$('#element').parents()[3];

Die Verwendung von eq scheint das dynamische DOM zu greifen, während die Verwendung von .parent (). parent () das anfänglich geladene DOM zu greifen scheint (wenn das überhaupt möglich ist).

Ich benutze sie beide für ein Element, auf das Klassen Onmouseover angewendet haben. eq zeigt die Klassen während .parent (). parent () doesnt.


Du könntest so etwas verwenden:

(function($) {
    $.fn.parentNth = function(n) {
        var el = $(this);
        for(var i = 0; i < n; i++)
            el = el.parent();

        return el;
    };
})(jQuery);

alert($("#foo").parentNth(2).attr("id"));

http://jsfiddle.net/Xeon06/AsNUu/


Einfach hinzufügen :eq() Selektor wie folgt:

$("#element").parents(":eq(2)")

Sie geben einfach den Index an, welcher Elternteil: 0 für sofortiges Elternteil, 1 für Großelternteil, ...


Es ist einfach. Benutz einfach

$(selector).parents().eq(0); 

Wobei 0 die Elternebene ist (0 ist Elternteil, 1 ist Elternteil usw.)


Sie können auch verwenden:

$(this).ancestors().eq(n) 

ex: $(this).ancestors().eq(2) -> das Elternteil des Elternteils this .


Sie könnten dem Zielelternteil eine ID oder Klasse (z. B. myParent) geben, und Referenz ist mit $('#element').parents(".myParent")


Wenn Sie ein gemeinsames Eltern-Div haben, können Sie den elternUntil () -Link verwenden

zB: $('#element').parentsUntil('.commonClass')

Vorteil ist, dass Sie sich nicht merken müssen, wie viele Generationen zwischen diesem Element und dem gemeinsamen Elternteil existieren (definiert durch commonclass).





parent