2010-11-05 3 views
0

En supposant que le code HTML suivant:Comment obtenez-vous une valeur onClick depuis l'extérieur de l'ancre sur laquelle vous avez cliqué?

<tr id="record_1" > 
<td id="name_1"><a href="#" id="logNameAndValue">Charles Dickens</a></td><td id="value_1">A Christmas Carol</td> 
</tr> 

Comment puis-je imprimer name=Charles Dickens value=A Christmas Carol en partie en utilisant le jQuery suivant:

$('#logNameAndValue').click(function(event){ 
    name=? 
    value=? 
    console.log("name=" + name + " value=" + value); 
}); 

Répondre

2
$('#logNameAndValue').click(function(event){ 
    name = $(this).text(); 
    value = $(this).parent().next().text(); 
    console.log("name=" + name + " value=" + value); 
}); 
+0

qui fonctionnera, alors cela ne fonctionnera pas pour ce cas, mais s'il arrive à changer la structure de la table. – shoebox639

+0

@ shoebox639 - C'est vrai. Mais le PO dit spécifiquement, "En supposant le HTML suivant" qui me dit que c'est le HTML dont il s'inquiète. Si cela change, il devra aussi mettre à jour le script. La même chose pourrait être dite à propos de votre solution ... et si les ID changent? –

0

Dans la fonction d'événement de clic, la valeur serait $ (ce) .siblings ('td'). text() Je crois, et le nom serait $ (this) .text().

1
name = $(this).text() 
value = $('#value_' + $(this).attr('id').substring($(this).attr('id').length-1)).text() 
1
$('#logNameAndValue').click(function(event){ 
    name=$(this).text(); 
    value=$(this).parent().next("td").text(); 
    console.log("name=" + name + " value=" + value); 
}); 
Questions connexes