2009-07-30 21 views
86

Estoy tratando de encontrar todos los elementos en una página cuyo ID de elemento contiene un texto determinado. Luego necesitaré filtrar los elementos encontrados en función de si están ocultos o no. Cualquier ayuda es muy apreciada.Buscar todos los elementos en una página cuyo elemento ID contiene un texto determinado usando jQuery

+0

posible duplicado de [JQuery selector de expresiones regulares] (http://stackoverflow.com/questions/190253/jquery-selector-regular-expressions) –

Respuesta

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

Nota el asterisco '*' al principio del selector matches all elements.

Ver el Attribute Contains Selectors, así como los selectores :visible y :hidden.

+8

Quizás vale la pena mencionando que cuando se compara con el 'id' de un elemento no se usan comillas, donde cuando se compara con un 'nombre' se hace. '$ ('* [name * =" myname "]: visible')' No es el más intuitivo y me ha atrapado antes. – ficuscr

14

Esto selecciona todos los DIVs con un ID que contiene 'foo' y que son visibles

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

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

+0

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

+1

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

5

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

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

Si usted está encontrando por Contiene entonces va a ser como esto

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

Si usted está encontrando por Empieza con entonces va a ser como esto

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

Si estás buscando por Termina con, entonces será como este

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

Si desea seleccionar elementos que ID no es una cadena dada

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

Si desea seleccionar elementos que ID contiene una palabra dada, delimitadas por espacios

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

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

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