386 Stimmen

Suche nach dem nächstgelegenen Vorgängerelement, das eine bestimmte Klasse hat.

Wie kann ich in reinem JavaScript das übergeordnete Element eines Elements finden, das am nächsten am Baum liegt und eine bestimmte Klasse hat? Zum Beispiel in einem Baum wie diesem:

        Wo bin ich?

Dann möchte ich div.near.ancestor erhalten, wenn ich das auf dem p versuche und nach ancestor suche.

7voto

James Punkte 389

Diese Lösung sollte für IE9 und höher funktionieren.

Es ist ähnlich wie die Methode parents() in jQuery, wenn Sie einen Elterncontainer benötigen, der sich möglicherweise einige Ebenen über dem angegebenen Element befindet, beispielsweise das Finden des enthaltenen

eines angeklickten . Sucht durch die Eltern, bis der übereinstimmende Selektor gefunden wird oder bis der erreicht wird. Gibt entweder das übereinstimmende Element oder den zurück.

function parents(el, selector){
    var parent_container = el;
    do {
        parent_container = parent_container.parentNode;
    }
    while( !parent_container.matches(selector) && parent_container !== document.body );

    return parent_container;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X