<div>'.$i.'</div>

$i es generado automáticamente por el bucle, lo que podría conducir a:

<div>'.$i.'</div>
<div>'.$i.'</div>
<div>'.$i.'</div>

etc. donde cada $i es diferente.

¿Cómo puedo obtener el valor de particular $i (con jQuery), cuando div que se hace clic.

En el estándar de JS que me gustaría utilizar onClick($i).
En jQuery yo no sé, cómo elegir el val.

OriginalEl autor Jeffz | 2010-08-31

2 Comentarios

  1. 17

    Si usted no tiene ninguna otra manera de identificar la <div> elementos, esto daría lugar a un controlador en cada <div> en la página.

    $('div').click(function() {
        var text = $(this).text();
        //do something with the text
    });

    La .texto() método devolverá el contenido del texto para que <div>, (así como todos los elementos anidados).

    Si sólo quería que la click evento en ciertos <div> elementos, lo mejor es agregar una clase, y seleccionar los correctos.

    $('div.myClass').click(function() {
        var text = $(this).text();
        //do something with the text
    });

    HTML

    <div class="myClass">'.$i.'</div>
    <div class="myClass">'.$i.'</div>
    <div class="myClass">'.$i.'</div>
    
    <div>some other div</div>

    Si el <div> elementos son todos dentro de un mismo ancestro elemento, puede utilizar .delegado() lugar, que pongan un controlador en el antecesor para manejar todos los divs dentro.

    $('#parentID').delegate('div.myClass', 'click', function() {
        var text = $(this).text();
        //do something with the text
    });

    HTML

    <div id="parentID">
        <div class="myClass">'.$i.'</div>
        <div class="myClass">'.$i.'</div>
        <div class="myClass">'.$i.'</div>
    </div>

    (Requiere de jQuery 1.4 o posterior)

    +1 muy rápido…
    Cuando llego a una pregunta y veo que «visto 0 veces», sé que tengo una oportunidad de luchar. :o)
    patrick dw: muchas Gracias por tomar el tiempo para explicar a mí, ahora parece muy simple. Antes de publicar yo estaba googlin’ un poco, pero yo no era capaz de pedir se que la pregunta correcta. gracias de nuevo a Jeff

    OriginalEl autor user113716

  2. 5
    $('div').click(function(event){
      alert($(this).text());
    });

    Una solución más eficiente (ya que parece que tiene un montón de <div>s sería agregar un evento en vivo para el elemento de ajuste de aquellos que, como este:

    $('#container').live('click', function(event){
       if(event.target.tagName == "DIV") alert($(event.target).text());
    });
    Para el segundo ejemplo de código, para obtener el texto para el correcto <div> usted querrá hacer $(event.target).text() lugar. this se refiere a la #container elemento. …¿o #container div en el selector de utilizar this.
    Cierto! Voy a editar ahora mismo
    Pablo, Gracias por el tiempo que le tomó escribir su explicación. Jeff
    Cool man, no hay problema. Yo realmente no explicar a fondo cómo los eventos en vivo de trabajo (y la hacer vienen de la mano me creen), usted puede leer acerca de los que están aquí -> api.jquery.com/live

    OriginalEl autor Pablo Fernandez

Dejar respuesta

Please enter your comment!
Please enter your name here