2012-06-23 11 views
6

Czy istnieje sposób, aby zaznaczyć wszystkie identyfikatory z jQuery z przedrostkiem „my” i przyrostka „0-9”. Coś podobnego do tych $ ("# my $ 1-4") lub jest to możliwe z pętlą?jQuery Wybierz # id słowem jako prefiks i licznika jako przyrostek

<div id="my1"/> 
    <div id="my2"/> 
    <div id="my3"/> 
    <div id="my4"/> 
    <div id="my5"/> 
+0

Potrzebujesz tylko selektora ** id **? Dlaczego nie używać selektora klasy, nazwy lub danych. Na ostatnią stronę zobacz http://stackoverflow.com/questions/2891452/jquery-data-selector Dostępne są selektory atrybutów, takie jak ten http://api.jquery.com/attribute-contains-prefix-selector/ – m03geek

Odpowiedz

0

Część prefiks jest łatwo osiągalny z selektorem attribute starts-with:

$("div[id^=my]"); 

Ale nie ma selektor, który pozwoli określić zakres znaków, więc pętla będzie musiała być zaangażowana. Proponuję filter:

$("div").filter(function() { 
    return /^my\d$/.test(this.id); 
}); 
0

Zakładając, że nie mają miliony elementów, które zaczynają się od „my”, można zrobić:

$('[id^=my]').filter(function() { return this.id.matches(/\d/) && this.id.length == 3 }) 

Ten chwyta wszystkie elementy, które mają identyfikator zaczynające się od „my”, zawierają szereg i ma tylko 3 znaki (więc "my54" nie będzie się zgadzać, ale "my6" będzie)

Powiązane problemy