Encuentre todos los elementos en una página cuyo ID de elemento contiene un cierto texto usando jQuery


Respuestas:


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

Tenga en cuenta que el asterisco '*' al comienzo del selector coincide con todos los elementos .

Consulte el atributo contiene selectores , así como los selectores : visible y : oculto .


17
Tal vez valga la pena mencionar que cuando se compara con un elemento, idno se utilizan comillas, mientras que cuando se compara con un elemento namesí. $('*[name*="myname"]:visible') No es el más intuitivo y me ha pillado antes.
ficuscr

Reemplacé $ (this) .doStuff (); con this.doStuff (); y trabajado
Carlos López Marí

133

Si lo encuentra por Contiene , será así

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

Si estás buscando por Comienza con, entonces será así

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

Si está buscando por Finaliza con, entonces será así

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

Si desea seleccionar elementos cuya identificación no es una cadena dada

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

Si desea seleccionar elementos cuyo nombre contiene una palabra dada, delimitada por espacios

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

Si desea seleccionar elementos cuya identificación es igual a una cadena dada o comenzar con esa cadena seguida de un guión

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

Hola, ¿cómo puedo usar un selector para seleccionar aquellos elementos cuya identificación pertenece a una matriz?
bpa.mdl

20

Esto selecciona todos los DIV con una ID que contiene 'foo' y que son visibles

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

Si estoy buscando elementos de cuadro de texto en lugar de divs, ¿es simplemente $ ("input: visible [id * = 'foo']"); ?
user48408

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

1
@ port-zero - las comillas simples alrededor de 'foo' no son necesarias
karim79

si está tratando de obtener el valor de los elementos (en mi caso se extiende) debe obtenerlo$(this)[0].innerText
Niklas

6

Gracias a los dos. Esto funcionó perfectamente para mí.

$("input[type='text'][id*=" + strID + "]:visible").each(function() {
    this.value=strVal;
});
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.