Am nächsten Vorfahren passenden Selektor mit nativen DOM?
Ist jemanden arbeiten, auf eine jQuery.am nächsten() Entsprechung in der DOM-api?
Sieht aus wie die Selectors Level 2 Entwurf fügt matches()
entspricht jQuery.ist()also nativen am nächsten sein sollte, viel einfacher zu schreiben. Hat hinzufügen closest()
an-Selektoren kommen?
InformationsquelleAutor der Frage hurrymaplelad | 2013-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Element.am nächsten()
Ihre Unterstützung
Umsetzung einer solchen Funktion mit Element.matches() scheint nicht optimal in Bezug auf Leistung, verursachen offenbar matches() wird ein Aufruf von querySelectorAll() jedes mal, wenn Sie testen, ein Elternteil, während nur ein Anruf ist ausreichend für den job.
Hier ist ein polyfill für den nächsten() auf MDN. Hinweis: ein einzelner Aufruf von querySelectorAll()
Aber Bedenken Sie, dass die Funktion implementiert, wie dies wird nicht ordnungsgemäß auf dem angefügten Baum (losgelöst vom Dokument.documentElement root)
Obwohl am nächsten (ist), dass die Implementierung in Firefox 51.0.1 scheint gut zu funktionieren mit getrennten Baum
InformationsquelleAutor der Antwort Pavlo D
Gebäude aus der Alnitak Antwort. Hier ist die Arbeit und aktuelle Umsetzung mit
matchesSelector
die jetztmatches
im DOM spec.Browser-Unterstützung ist groß: http://caniuse.com/matchesselector
InformationsquelleAutor der Antwort Paul Irish
Scheint wie Chrome 40 bringt eine native
element.closest()
Methode (http://blog.chromium.org/2014/12/chrome-40-beta-powerful-offline-and.html) hier angegeben: https://dom.spec.whatwg.org/#dom-element-closestInformationsquelleAutor der Antwort Jonathan Raoult
Dieser klingt, wie es sollte Recht einfach sein, angesichts der
matches
- Funktion, aber das ist nicht allgemein unterstützt noch:Das Problem ist, das
matches
Funktion nicht richtig unterstützt. Da es noch ein relativ neues API verfügbar alswebkitMatchesSelector
im Chrome und Safari, undmozMatchesSelector
im Firefox.InformationsquelleAutor der Antwort Alnitak
Verwendung element.am nächsten() wir finden am Nächsten Vorfahren passenden Selektor. Diese Methode nimmt Selektoren-Liste als parameter und gibt die nächsten Vorfahren. Als pro Rob ' s Kommentar diese API wird von chrome 41 und FF 35.
Wie bereits in den whatwg-Spezifikationen https://dom.spec.whatwg.org/#dom-element-closest
Beispiel: im folgenden HTML zeigen Warnmeldung "true"
InformationsquelleAutor der Antwort Paritosh
Ein wenig Rekursion wird den trick tun.
InformationsquelleAutor der Antwort Finn Fitzsimons