Pregunta

Necesito obtener todos los divs con un identificador dado, pero el jQuery cada función sólo obtener la primera.

Ejemplo:

<div id="#historial">some html code</div>
<div id="#historial">some html code</div>
<div id="#historial">some html code</div>
<div id="#historial">some html code</div>

script:

$("#historial").each(function() {
alert("one div");
});

si paso un ancla o un identificador de anclaje + EJ $ ( "# Lala a") es funciona bien.

¿Qué pasa?

BR

¿Fue útil?

Solución

Sólo se puede utilizar un identificador específico para un elemento en una página. Utilizar una clase en su lugar:

<div class="historial">some html code</div>
<div class="historial">some html code</div>
<div class="historial">some html code</div>
<div class="historial">some html code</div>

$(".historial").each(function(e) {
  alert("one div");
});

Otros consejos

Un ID debe ser único, sólo debe haber un elemento en la página con un ID específico.

Si necesita agrupar los DIVs, el uso de la 'clase' en su lugar.

<div class="historial">some html code</div>
<div class="historial">some html code</div>
<div class="historial">some html code</div>
<div class="historial">some html code</div>

Así que el jQuery revisada, para buscar cada DIV con la clase 'Historal' se vería así:

$("div.historal").each(function() {
    alert($(this).text());    //Prints out the text contained in this DIV
});

Además, un sidenote- el # se utiliza por jQuery, no el HTML markup- por ejemplo, si usted tenía un DIV como

<div id="historal">stuff</div>

se verá que con jQuery como esto:

$("#historal")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top