Gibt es eine Möglichkeit, nach Attributen zu suchen, die mit einer bestimmten Zeichenfolge in HTML beginnen?

8

Gibt es eine Möglichkeit, alle Elemente mit Attributen zu finden, die mit einer bestimmten Zeichenfolge beginnen?

Ich benutze Mootools Framework und das habe ich ausprobiert:

%Vor%

Aber es gibt nur alle Elemente auf der Seite aus.

Gibt es also eine Möglichkeit, alle Elemente auf der Seite zu erhalten, die Attribute haben, die mit data-media- ?

beginnen?     
jnbdz 18.09.2012, 06:12
quelle

4 Antworten

1

Sie können Elemente filtern, die Sie bereits mit übereinstimmenden Daten- * Attributen zurückgeben müssen.

%Vor%

in Aktion: Ссылка

Nachteil: Sie müssen es bereits auf eine Sammlung von Elementen, die Sinn machen, z. div.foo oder #someid *

Eine elegantere Lösung wäre es, Slick einen :data() pseudo hinzuzufügen:

%Vor%

aktualisiertes Beispiel: Ссылка

    
Dimitar Christoff 18.09.2012, 14:18
quelle
2

Sie können so etwas approximieren, indem Sie die Attribute für jedes Element im Container durchlaufen und feststellen, ob der Attributname mit einer Regex übereinstimmt, nach der Sie suchen:

Beispiel: In diesem jsFiddle suche ich nach li -Elementen mit den Eigenschaften data-media-tv und data-media-dvd .

Sie können die Regex so anpassen, dass nur das zurückgegeben wird, was Sie sehen möchten. Möchten Sie nur Elemente sehen, die ein Datenmedium * haben (wie in Ihrer Frage)? Hier gehts .

Beachten Sie, dass dies nicht genau skalierbar ist . Da wir jedes einzelne Element auf der Seite durchlaufen und jedes einzelne Attribut prüfen (aber früh zurückkommen, wenn es gefunden wird), kann dies bei großen Seiten wahrscheinlich langsam sein.

Begrenzen Sie dies auf NUR den Container, den Sie durchsuchen möchten, oder nur die Elemente, die Sie durchlaufen möchten! Wenn Sie dies gegen document.body ausführen, durchläuft es jedes einzelne Element auf der Seite, ich bin nicht verantwortlich, wenn Ihr Haus dadurch abbrennt. :)

Hier ist es funktionalisiert:

%Vor%

Geben Sie in elements nur die Elemente ein, die Sie überprüfen möchten, möglicherweise über $$ . Wenn Sie alle Elemente in einem Containerelement überprüfen möchten, ersetzen Sie elements durch container und container.getChildren() in jeder Instanz von element über.

    
Julian H. Lam 18.09.2012 13:50
quelle
2

probiere dieses Spiel kenne einfach den (gemeinsamen) Index / die Position des Attributs data-media-* und verwende es entsprechend im Code.

    
Teena Thomas 18.09.2012 15:32
quelle
-3
%Vor%     
Alvin Pradeep 18.09.2012 06:25
quelle