Gesucht: jQuery-Selektor mit variablem Teil in der Mitte

8

Betrachten Sie den folgenden HTML-Code:

%Vor%

Ich möchte einen Selektor, der die Divs auswählt, die wie $('div[id=Kees_{any number}_test]') aussehen. Wie kann ich das erreichen?


Hinweis: Die IDs werden von Asp.Net generiert.

    
Kees C. Bakker 10.05.2011, 11:19
quelle

2 Antworten

12

Versuchen Sie Folgendes:

%Vor%

Dieser Selektor wählt alle Elemente mit IDs aus, die mit Kees_ beginnen und mit _test enden.

Wie schon in den letzten Tagen vorgeschlagen, können Sie .filter() verwenden, um sicherzustellen, dass der mittlere Teil nur Zahlen enthält. Sie können .filter() mit dem obigen Beispiel kombinieren:

%Vor%

Das sollte ungefähr so ​​gut wie es geht. Beachten Sie, dass ich ^$ zur Regex hinzugefügt habe. Dies wird false für IDs wie Kees_123_test_foo auch zurückgeben, aber Kees_123_test übergibt.

    
Tatu Ulmanen 10.05.2011, 11:20
quelle
7

Die beste Lösung wäre, allen Ihren divs eine Klasse zu geben und einen Klassenselektor zu verwenden:

%Vor%

Selektor:

%Vor%

Wenn dies nicht möglich ist, verwenden Sie am besten filter :

%Vor%

\d+ bedeutet "wähle eine oder mehrere Zahlen".

    
lonesomeday 10.05.2011 11:23
quelle