Muchos botones, jquery

jQuery:

$("#direction").click(function() {
    var direction = $(this).text();
    alert(direction);
}

HTML

<button id="direction">South</button>
<button id="direction">North</button>

Solo el primer botón alerta el texto. no entiendo porque ¿Cómo puedo arreglar esto?

preguntado el 12 de junio de 12 a las 19:06

está utilizando el selector de ID. Si el motor jquery encuentra más de un elemento con la misma ID, ignora todos excepto el primero. -

3 Respuestas

No puede tener dos elementos con la misma identificación, lo que podría hacer es darles la misma clase y luego agregar el controlador de eventos en eso.

Ejemplo:

<button class="directionBtn">South</button>
<button class="directionBtn">North</button>

$(".directionBtn").click(function() {
                var direction = $(this).text();
                alert(direction);
});

Respondido el 12 de junio de 12 a las 20:06

Este código contiene un error de sintaxis, faltan '}' y ')' al final - james_bond

Podemos estar de acuerdo en que la sintaxis no es parte de la respuesta. Esto explicaba más un concepto (uso class en lugar de id). Pero tienes razón y edité mi respuesta para corregir el error. - Ryan

No es válido tener varios elementos con el mismo id (un id debe: ser único dentro del documento); como jQuery presumiblemente implementa document.getElementById() internamente, esto solo devolverá (correctamente) el primer elemento que encuentre con ese id.

En tu caso debes usar un class de dirección, y seleccione en base a eso:

$('.direction').click(
    function(){/*...*/});

Respondido el 12 de junio de 12 a las 19:06

No puede tener dos elementos con la misma identificación, use clases si desea hacer referencia a varios elementos a la vez, algo como:

<button class="direction">South</button>
<button class="direction">North</button>

Y luego en tu script:

 $(".direction").click(function() {
    var direction = $(this).text();
    alert(direction);
});

Respondido el 12 de junio de 12 a las 21:06

Para ser claros, PUEDE tener dos elementos con la misma ID. Es una muy mala idea hacerlo, ya que creará problemas. - Evik James

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.