2011-02-02 7 views
27

Tengo texto coincidente en diferentes partes de un documento. La primera es un conjunto de "etiquetas" en una tabla de este modo:¿Cómo obtener el valor de texto de un enlace cliqueado?

<div id="my-div"> 
    <div><a href="#">tag 1</a></div> 
    <div><a href="#">tag 2</a></div> 
</div> 

Luego, en varias otras partes del documento, tengo un elemento oculto después de que los artículos que quiero destacar cuando el enlace correspondiente se selecciona como por lo que:

<div class="hide-me">tag 1</div> 

Entonces mi función de clic es así:

$('#my-div a').click(function() { 
    var txt = $(this).text(); 
    console.log(txt); 
}); 

La salida es una cadena vacía, pero no estoy seguro de por qué.

+2

No veo ningún problema. [Una muestra] (http://www.jsfiddle.net/reigel/WBNkB/) – Reigel

Respuesta

55

su código parece ser la adecuada, intente este también.

$('#my-div a').click(function(e) { 
    var txt = $(e.target).text(); 
    console.log(txt); 
}); 
+1

¡Tienes razón, era correcto, y también gracias por el método alternativo! – 95slug

+0

No hay problema, mi amigo :) –

+0

¿Puede decirme qué hace esta función? ¿Por qué es correcto y su código no funciona? :) –

0

En su caso, no utilizaría el texto del enlace, ya que es posible que pueda cambiar en el futuro (es decir, debe traducir su sitio web). La mejor solución es añadir atributos personalizados a los enlaces:

<div id="my-div"> 
    <div><a href="#" sectionId="someId1">tag 1</a></div> 
    <div><a href="#" sectionId="someId2">tag 2</a></div> 
</div> 

y luego poner el id de la etiqueta oculta allí, por lo que y hasta con:

$('#my-div a').click(function() { 
    var sectionId = $(this).attr('sectionId'); 
    $('#' + sectionId).show(); 
    return false; // return false so the browser will not scroll your page 
}); 
+0

@Reigel - ¡Salud! –

+0

¿Qué sugiere que haga con la validación W3C cuando agrega atributos personalizados? –

-1

$ ('# my-div a') es ambiguo.

Se va a leer todas las etiquetas dentro de un '# mi-div'

u necesidad de especificar cuál de las 2 etiquetas se hace clic ..

Cuestiones relacionadas