Schnelle Frage - Ist es möglich, jQuery-Selektoren zu erweitern, um die Ergebnismenge (z. B.) über Traversal zu ändern, anstatt nur eine vorhandene Menge zu filtern?Benutzerdefinierter jQuery-Selektor
Um zu klären - ich die Wahl äquivalent einen Anruf zu $.filter()
nicht wollen - ich mag etwas näher an $('foo:nth-child(n)')
oder $('foo:eq(n)')
, wo ich genau angeben kann, welche Elemente durch den Wähler zurückgeführt werden. Irgendwelche Gedanken würden geschätzt werden.
Edit: hier ist ein Beispiel dessen, was ich umsetzen wollen:
$.expr[':']['nth-parent'] = function(deTarget, iIndex, aProperties, aStack) {
var iN, $currentElement;
if(!deTarget)
return;
if(!aProperties || aProperties.length < 4 || isNaN(iN = parseInt(aProperties[3])) || iN < 0)
throw('jQuery.nth-parent(N) requires a non-negative integer argument');
$currentElement = $(deTarget);
while(--iN >= 0)
$currentElement = $currentElement.parent();
aStack = $currentElement.length ? [$currentElement.get(0)] : [];
return aStack.length ? true : false;
};
Also, schließlich würde ich wollen, dass die neue aStack
Array als Ergebnis zurückgegeben, in diesem speziellen Fall.
Ja, Sie können die Selektoren erweitern, Sie müssen Beispiele für die Auswahl angeben, damit wir Ihnen zeigen können, wie. – zzzzBov
"Ich möchte etwas näher an $ ('foo: nth-child (n)') oder $ ('foo: eq (n)')" - warum nicht einfach diese verwenden? – hunter