Trova tutti gli elementi in una pagina il cui ID elemento contiene un determinato testo usando jQuery


Risposte:


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

Nota che l'asterisco '*' all'inizio del selettore corrisponde a tutti gli elementi .

Vedi l' attributo Contiene i selettori , nonché i selettori : visible e : hidden .


17
Forse vale la pena ricordare che quando si fa una corrispondenza con un elemento idnon si usano le virgolette, mentre quando namesi fa una corrispondenza con un elemento si fa. $('*[name*="myname"]:visible') Non è il più intuitivo e mi ha raggiunto prima.
ficuscr,

Ho sostituito $ (questo) .doStuff (); con this.doStuff (); e ha lavorato
Carlos López Marí l'

133

Se lo trovi da Contains , sarà così

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

Se lo stai scoprendo da Starts With , sarà così

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

Se lo stai trovando con Ends With , sarà così

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

Se si desidera selezionare elementi quale ID non è una determinata stringa

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

Se si desidera selezionare elementi il ​​cui nome contiene una determinata parola, delimitato da spazi

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

Se si desidera selezionare elementi quale id è uguale a una determinata stringa o iniziare con quella stringa seguita da un trattino

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

Ciao, come posso usare un selettore per selezionare quegli elementi il ​​cui ID appartiene a un array.
bpa.mdl

20

Questo seleziona tutti i DIV con un ID contenente 'pippo' e che sono visibili

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

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

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

1
@ port-zero - le virgolette singole intorno a "pippo" non sono necessarie
karim79,

se stai cercando di ottenere il valore degli elementi (nel mio caso span) devi ottenere$(this)[0].innerText
Niklas

6

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

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.