Jsdom: Unterstützung für Element.closest()

Erstellt am 7. Juli 2016  ·  8Kommentare  ·  Quelle: jsdom/jsdom

Hey Leute, ich habe mich gefragt, ob es Pläne gibt, Element.closest() in jsdom zu unterstützen?

dom living standard feature selectors

Hilfreichster Kommentar

Leider habe ich im Moment nicht die Zeit, mich in die jsdom-Codebasis einzuarbeiten und sie zu verstehen, aber der folgende Ausschnitt ist alles, was erforderlich ist.

window.Element.prototype.closest = function (selector) {
    var el = this;
    while (el) {
        if (el.matches(selector)) {
            return el;
        }
        el = el.parentElement;
    }
};

Vielleicht kann das jemand, der bereits an dem Projekt arbeitet, an entsprechender Stelle einschieben.

Alle 8 Kommentare

Keine Pläne, das nicht vorhandene Element.closest zu unterstützen. Element.prototype.closest wird jedoch möglicherweise in Zukunft unterstützt. Ein Pull-Request wäre der beste Weg, um daran zu arbeiten.

@domenic Unterscheidet sich Element.prototype.closest von dem, was ich oben verlinkt habe? Kann keinen anderen MDN-Artikel als diesen finden.

Ich denke, es ist nur MDN, das verwirrend ist. Aber wenn Sie einen Browser (oder eine Spezifikation) auschecken, ist Element.closest === undefined , während Element.prototype.closest eine Funktion ist.

Oh, in Ordnung. Ich bin sicher, Sie haben es nicht so gemeint, aber Ihre erste Antwort hat mir das Gefühl gegeben, ein Neuling zu sein, weil ich den Unterschied nicht kannte, und ich hoffe, das ist nicht repräsentativ für diese Community. Ich werde versuchen, in den jsdom-Code einzutauchen, um zu sehen, ob ich genug verstehe, um einen Beitrag zu leisten.

Leider habe ich im Moment nicht die Zeit, mich in die jsdom-Codebasis einzuarbeiten und sie zu verstehen, aber der folgende Ausschnitt ist alles, was erforderlich ist.

window.Element.prototype.closest = function (selector) {
    var el = this;
    while (el) {
        if (el.matches(selector)) {
            return el;
        }
        el = el.parentElement;
    }
};

Vielleicht kann das jemand, der bereits an dem Projekt arbeitet, an entsprechender Stelle einschieben.

Da dieser jetzt geschlossen wurde, gibt es https://github.com/tmpvar/jsdom/pull/1951

Es ist immer noch nicht in jsdom, oder?

Dies wurde durch die Zusammenführung von https://github.com/jsdom/jsdom/pull/1951 in v11.12.0 behoben

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen