Recomendaría usarlo class="imageN"por el bien de HTML válido. O eso o data-imageId="imageN"por el bien de HTML5 válido. Con el primero, podría usar el selector de clases.
Andy E
Andy, la razón detrás de esto es que estos divs se agregan dinámicamente desde el código subyacente y tienen diferentes ImageIds pero la misma clase '.
Pabuc
3
Puedes tener varias clases class="image imageN"si eso ayuda.
Val
¿Por qué no seleccionar el nombre de la clase si ya tienen la misma clase?
Praxis Ashelin
Respuestas:
142
$('div[imageId="imageN"]').each(function() {
// `this` is the div
});
Para verificar la existencia exclusiva del atributo, sin importar qué valor, puede usar este selector en su lugar: $('div[imageId]')
@ThiefMaster: si el valor del atributo no es constante (es decir, variará), ¿cómo encontrarlo?
Desarrollador
un par de preguntas: 1- ¿qué pasa con otros elementos ... 2- qué hay con otros valores ... podría tener el atributo data-food en muchos elementos: div's, img's y a td's, donde cada uno tiene un valor diferente.
dsdsdsdsd
@ParthoGanguly Utiliza una variable de esta manera: $ ('div [imageId = "' + variableName + '"]')
Kama
1
Esta solución no responde realmente al título de esta página. Está buscando elementos que sean divs. Una solución adecuada es aquella que es independiente del elemento real.
AndroidDev
164
Aunque no responde con precisión a la pregunta, llegué aquí cuando buscaba una forma de obtener la colección de elementos (nombres de etiquetas potencialmente diferentes) que simplemente tenían un nombre de atributo dado (sin filtrar por valor de atributo). Descubrí que lo siguiente funcionó bien para mí:
$("*[attr-name]")
Espero que ayude a alguien que aterrice en esta página buscando lo mismo que yo :).
Actualización: Parece que el asterisco no es obligatorio, es decir, según algunas pruebas básicas, lo siguiente parece ser equivalente a lo anterior (gracias a Matt por señalar esto):
class="imageN"
por el bien de HTML válido. O eso odata-imageId="imageN"
por el bien de HTML5 válido. Con el primero, podría usar el selector de clases.class="image imageN"
si eso ayuda.Respuestas:
$('div[imageId="imageN"]').each(function() { // `this` is the div });
Para verificar la existencia exclusiva del atributo, sin importar qué valor, puede usar este selector en su lugar:
$('div[imageId]')
fuente
Aunque no responde con precisión a la pregunta, llegué aquí cuando buscaba una forma de obtener la colección de elementos (nombres de etiquetas potencialmente diferentes) que simplemente tenían un nombre de atributo dado (sin filtrar por valor de atributo). Descubrí que lo siguiente funcionó bien para mí:
$("*[attr-name]")
Espero que ayude a alguien que aterrice en esta página buscando lo mismo que yo :).
Actualización: Parece que el asterisco no es obligatorio, es decir, según algunas pruebas básicas, lo siguiente parece ser equivalente a lo anterior (gracias a Matt por señalar esto):
$("[attr-name]")
fuente
$("[attr-name]")
? (es decir, no*
)$("[data-toggle='modal']")
No se llama etiqueta; lo que está buscando se llama atributo html.
$('div[imageId="imageN"]').each(function(i,el){ $(el).html('changes'); //do what ever you wish to this object :) });
fuente
Puede usar el valor parcial de un atributo para detectar un elemento DOM usando el signo (^). Por ejemplo, tienes divs como este:
<div id="abc_1"></div> <div id="abc_2"></div> <div id="xyz_3"></div> <div id="xyz_4"></div>...
Puedes usar el código:
var abc = $('div[id^=abc]')
Esto devolverá una matriz DOM de divs que tienen una identificación que comienza con
abc
:<div id="abc_1"></div> <div id="abc_2"></div>
Aquí está la demostración: http://jsfiddle.net/mCuWS/
fuente
Utilice la concatenación de cadenas. Prueba esto:
$('div[imageId="'+imageN +'"]').each(function() { $(this); });
fuente