2017-06-26 1 views
0

Ich erzeuge etwas HTML von JSON, was mich mit einem HTML-Objekt mit einer dynamischen Menge von Kindern, hängt von einem der Benutzer und wenn sie die JSON ändern.JS HTML-Objekt, Suche nach Elementen, die Klassen enthalten

Ich muss einen Verweis auf bestimmte Elemente in Abhängigkeit von den Klassen beibehalten, so dass der Benutzer den Namen der Klassen ändern kann, aber sie müssen bestimmte Schlüsselwörter haben, also zum Beispiel möchte ich einen Verweis auf halten marvLightbox__close.

Jemand könnte dies zu etwas wie something__close ändern, also wie kann ich die Kinder dieses HTML-Objekts für nur close suchen?

Ich habe dieses Objekt noch nicht an das DOM angehängt, es ist nur im Speicher.

P.S. KEINE JQUERY!

Bearbeiten Gefunden heraus, ich kann das verwenden, aber ich fühle mich wie es ein bisschen betrügt! Außerdem brauche ich IE8 zu unterstützen ...

document.querySelectorAll('[class*=-img]') 

Edit 2

Die Polyfill ist eigentlich nicht zu viele Zeilen, so ist es nicht so schlecht, nachdem alle ...

if (!document.querySelectorAll) { 
    document.querySelectorAll = function (selectors) { 
    var style = document.createElement('style'), elements = [], element; 
    document.documentElement.firstChild.appendChild(style); 
    document._qsa = []; 

    style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}'; 
    window.scrollBy(0, 0); 
    style.parentNode.removeChild(style); 

    while (document._qsa.length) { 
     element = document._qsa.shift(); 
     element.style.removeAttribute('x-qsa'); 
     elements.push(element); 
    } 
    document._qsa = null; 
    return elements; 
    }; 
} 
+0

Was haben Sie bisher versucht? – freginold

+1

Nun, ich wollte QuerySelectorAll versuchen, aber nicht sicher, wie man das für diesen Zweck verwendet? P.S. Wenn du runterlegst, hinterlasse einen Kommentar und erkläre warum, sonst ist es sinnlos. –

+0

War ich nicht das downvoted. – freginold

Antwort

0

Ich habe herausgefunden, dass ich das verwenden kann, aber ich habe das Gefühl, dass es ein bisschen betrügt! Außerdem brauche ich IE8 zu unterstützen ...

document.querySelectorAll('[class*=-img]') 

Die Polyfill ist eigentlich nicht zu viele Zeilen, so ist es nicht so schlecht, nachdem alle ...

if (!document.querySelectorAll) { 
    document.querySelectorAll = function (selectors) { 
    var style = document.createElement('style'), elements = [], element; 
    document.documentElement.firstChild.appendChild(style); 
    document._qsa = []; 

    style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}'; 
    window.scrollBy(0, 0); 
    style.parentNode.removeChild(style); 

    while (document._qsa.length) { 
     element = document._qsa.shift(); 
     element.style.removeAttribute('x-qsa'); 
     elements.push(element); 
    } 
    document._qsa = null; 
    return elements; 
    }; 
} 
Verwandte Themen