Suche nach einem partiellen Klassennamen, Rückgabe des vollständigen Klassennamens

8

Stellen Sie sich das vor:

Seite A enthält dies in body :

%Vor%

Seite B enthält:

%Vor%

Ich kann dieses Skript verwenden, um zu identifizieren, ob sie eine Overlay-Klasse enthalten:

%Vor%

Für den Rückgabewert, anstelle von "Es funktioniert", wie bekomme ich es, um den Rest des Klassennamens z. "Overlay-Ergebnisse" oder wenn Bedarf der gesamte div Inhalt ist, z.B. " <div class="overlay-results"><span></span></div> "?

Es gibt viele andere Seiten wie diese mit verschiedenen 'overlay-' Klassennamen, also möchte ich nicht eine Suche nach jedem dieser 'One size fits all' Methode machen.

    
aphextwig 25.11.2015, 15:30
quelle

6 Antworten

2

Sie könnten einen regulären Ausdruck verwenden und ihn so umschreiben:

%Vor%     
Piyin 25.11.2015, 15:48
quelle
2

Sie können diesen jQuery-Selektor verwenden, zum Beispiel

Dies wird dir Elemente geben, die overlay irgendwo in ihrem Klassennamen haben.

$('div[class*=overlay]')

Dies gibt Ihnen Elemente, deren Klassenname mit overlay beginnt.

$('td[class^=overlay]')

Dies gibt Ihnen Elemente, deren Klassenname mit overlay endet.

$('td[class$=overlay]')

BEARBEITEN:

Um dies in Ihrem Code zu verwenden, können Sie Folgendes tun:

%Vor%

Diese Funktion fi nd die Elemente mit dem Overlay in ihrem Klassennamen a gibt den vollständigen Klassennamen zurück.

    
Adrian Menendez 25.11.2015 15:35
quelle
2

Um ein Element auszuwählen, mit dem beginnt , verwenden Sie ^ like [class^="overlay-"] .

Um alle Elemente mit dem startenden class zurückzugeben, können Sie: -

%Vor%

oder um die Klasse zurückzugeben, wenn es nur eine gibt, können Sie verwenden: -

%Vor%

oder wenn es mehrere Klassen gibt, verwenden Sie: -

%Vor%     
BenG 25.11.2015 15:41
quelle
1

Wenn ich richtig verstehe, möchten Sie die full-Klasse , die mit der Überlagerung übereinstimmt, und nicht den Wert der Attributklasse für das Element. Indem wir eine partielle Attributsuche mit einem Selektor durchführen, können wir alle Elemente erhalten, die mit dieser Suche übereinstimmen, dann durch sie hindurchgehen und aus ihren Klassen diejenigen extrahieren, die der partiellen Klasse give entsprechen.

%Vor%

Würde ausgeben: [overlay-homepage,overlay-results] oder was auch immer auf der Seite ist, wenn Sie nur ein Ergebnis wollen, können Sie einfach getFullClass("overlay-")[0]

machen     
Juan Cortés 25.11.2015 15:43
quelle
0

Verwenden Sie einfach .find() in jquery.

  

Ermittelt die Nachkommen jedes Elements in der aktuellen Treffermenge   Elemente, gefiltert durch einen Selektor, ein jQuery-Objekt oder ein Element.

%Vor%     
Sudharsan S 25.11.2015 15:34
quelle
0

Mit der SMACSS-Methodik ( Ссылка ) können Sie verschiedene Bereiche Ihrer Site basierend auf dem Layout und der Struktur modularisieren. Das Layout der Seite erhält Klassen auf oberster Ebene, die grundlegende und generische Stile anwenden, und alle seitenspezifischen Stile werden durch Namen-getrennte Klassen angewendet. Zum Beispiel haben alle Überlagerungen die Klasse .ovr , die anzeigt, dass es sich um ein Overlay handelt und .ovr-homepage , .ovr-results Klassen und einzigartige Stile gelten.

Sie können dann alle Overlay-Module mit $('body .ovr'); oder spezifische Overlays mit $('body .ovr-homepage'); oder $('body .ovr.ovr-homepage'); erhalten.

Anstatt es mit JS zu überkompensieren, kann es mit CSS Struktur und Organisation gelöst werden.

    
jshaw3 25.11.2015 15:46
quelle

Tags und Links