Ich muss Elemente basierend auf Werten auswählen, die im .data()
Objekt eines Elements gespeichert sind . Zumindest möchte ich Dateneigenschaften der obersten Ebene mithilfe von Selektoren auswählen, möglicherweise wie folgt:
$('a').data("category","music");
$('a:data(category=music)');
Oder vielleicht hat der Selektor das reguläre Attribut-Selektor-Format:
$('a[category=music]');
Oder im Attributformat, aber mit einem Bezeichner, der angibt, dass es sich um Folgendes handelt .data()
:
$('a[:category=music]');
Ich habe festgestellt, dass die Implementierung von James Padolsey einfach und dennoch gut aussieht. Die Auswahlformate über den auf dieser Seite gezeigten Spiegelmethoden. Es gibt auch diesen Sizzle-Patch .
Aus irgendeinem Grund erinnere ich mich, dass ich vor einiger Zeit gelesen habe, dass jQuery 1.4 Selektoren für Werte im jquery- .data()
Objekt unterstützen würde. Jetzt, wo ich danach suche, kann ich es jedoch nicht finden. Vielleicht war es nur eine Feature-Anfrage, die ich gesehen habe. Gibt es Unterstützung dafür und ich sehe es einfach nicht?
Im Idealfall möchte ich Untereigenschaften in data () mithilfe der Punktnotation unterstützen. So was:
$('a').data("user",{name: {first:"Tom",last:"Smith"},username: "tomsmith"});
$('a[:user.name.first=Tom]');
Ich möchte auch mehrere Datenselektoren unterstützen, bei denen nur Elemente mit ALLEN angegebenen Datenselektoren gefunden werden. Der reguläre JQuery Multiple Selector führt eine ODER-Verknüpfung aus. Zum Beispiel $('a.big, a.small')
wählt a
Tags mit jeder Klasse big
oder small
). Ich suche ein UND, vielleicht so:
$('a').data("artist",{id: 3281, name: "Madonna"});
$('a').data("category","music");
$('a[:category=music && :artist.name=Madonna]');
Schließlich wäre es großartig, wenn Vergleichsoperatoren und Regex-Funktionen für Datenselektoren verfügbar wären. Wäre $(a[:artist.id>5000])
also möglich. Mir ist klar, dass ich wahrscheinlich viel davon tun könnte filter()
, aber es wäre schön, ein einfaches Auswahlformat zu haben.
Welche Lösungen stehen dafür zur Verfügung? Ist James Padolsey derzeit die beste Lösung? Mein Anliegen ist in erster Linie die Leistung, aber auch die zusätzlichen Funktionen wie die Notation von Sub-Property-Punkten und mehrere Datenselektoren. Gibt es andere Implementierungen, die diese Dinge unterstützen oder in irgendeiner Weise besser sind?