Ich entwickle gerade eine JQuery-Anwendung für meinen eigenen persönlichen Gebrauch und als eine Abkürzung, ich treffe eine Entscheidung basierend auf der letzten Klasse in der Liste, die immer eine Art Kennung ist.In der Mitte der Klassenliste einfügen
$("#myelement").attr('class').split(/\s+/).pop()
Die Klassen des Elements sind so etwas wie: Das ist in einer Reihe von Orten wie geschehen
class1 class2 class_with_id
Das Problem ist, dass jetzt habe ich eine Stelle im Code, wo ich versuche, eine Klasse zu der Liste hinzuzufügen, die ich in der Regel wie folgt tun würde:
$("#myelement").addClass("newclass")
jedoch, dass die Klassen wie folgt aussehen macht:
class1 class2 class_with_id newclass
Und die ID-Klasse zu einem späteren Zeitpunkt schlägt fehl. Ich habe es mit dieser Arbeit:
$("#myelement").attr('class', "newclass " + $("#myelement").attr('class'))
, dass es den Anfang ist das Hinzufügen:
newclass class1 class2 class_with_id
Ich habe zwei Fragen, die beide ähnliche:
Ist das die einfachste/einfachste Weg, um es am Anfang hinzuzufügen?
Gibt es eine einfache Möglichkeit, die Klasse in der Mitte des Satzes hinzuzufügen, ohne ausgefallene String-Manipulation. I.e. sagen, dass ich wollte, dass es das zweite letzte Element sein:
class1 class2 newclass class_with_id
Ich denke, dass Sie ein Problem haben, aber die Lösung, nach der Sie suchen, ist nicht die gute. Statt 'class_with_id' sollten Sie wahrscheinlich' data-with-id = "id" '... verwenden. –
Ich stimme mit Karl-Andre überein, wenn Sie stattdessen Datenattribute verwenden, brauchen Sie sich darüber keine Gedanken zu machen . Mit dem [data-x] -Selektor können Sie weiterhin Datenattribute in Ihrem CSS und JavaScript anvisieren. Wenn Sie also eine Daten-ID erstellen, können Sie sie mit [Daten-ID] aufrufen. – will
Es gibt einige, die schwören werden, dass Styling durch Daten und nicht Klasse falsch ist, da das Datenattribut, das dynamisch ist, kein semantischer Inhalt ist. scheint mir jedoch, dass es völlig angemessen ist. – Jonathon