2009-07-30 11 views
86

Sto cercando di trovare tutti gli elementi in una pagina il cui ID elemento contiene un determinato testo. Dovrò quindi filtrare gli elementi trovati in base al fatto che siano nascosti o meno. Qualsiasi aiuto è molto apprezzato.Trova tutti gli elementi in una pagina il cui ID elemento contiene un determinato testo utilizzando jQuery

+0

possibile duplicato del [JQuery selettore espressioni regolari] (http://stackoverflow.com/questions/190253/jquery-selector-regular-expressions) –

risposta

144
$('*[id*=mytext]:visible').each(function() { 
    $(this).doStuff(); 
}); 

Nota l'asterisco '*' all'inizio del selettore matches all elements.

Vedere il Attribute Contains Selectors, così come le :visible e :hidden selettori.

+8

Forse vale la pena menzionando che quando si confronta con l'id di un elemento non si usano le virgolette, dove si fa la corrispondenza con un 'nome'. '$ ('* [nome * =" myname "]: visible')' Non è il più intuitivo e mi ha catturato prima. – ficuscr

14

seleziona tutti i div con un ID che contiene 'foo' e che sono visibili

$("div:visible[id*='foo']"); 
+0

Se sto cercando elementi di testo invece di div, è semplicemente $ ("input: visible [id * = 'foo']"); ? – user48408

+0

sarebbe $ ("input [type = 'textbox'] [id * = 'foo']: visible") – karim79

+1

@ port-zero - le virgolette singole attorno a "foo" non sono necessarie – karim79

5

Grazie a tutti e due. Ha funzionato perfettamente per me.

$("input[type='text'][id*=" + strID + "]:visible").each(function() { 
    this.value=strVal; 
}); 
90

Se si sta trovando da Contiene allora sarà come questo

$("input[id*='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

Se si sta trovando da Inizia con allora sarà come questo

$("input[id^='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

Se stai trovando per finisce con allora sarà come questo

 $("input[id$='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

Se si desidera selezionare elementi che id non è una data stringa

$("input[id!='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

Se si desidera selezionare elementi che ID contiene una data parola, delimitati da spazi

 $("input[id~='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 

Se si desidera selezionare elementi che ID è uguale a un dato s tring o iniziare con quella stringa seguito da un trattino

 $("input[id|='DiscountType']").each(function (i, el) { 
     //It'll be an array of elements 
    }); 
Problemi correlati