2010-01-18 27 views
5

me gustaría hacer clic en una etiqueta de anclaje (a href) en una tabla y extraer el contenido de la celda siguiente (o cualquier celda specifc en esa fila)jQuery - conseguir elemento td en la tabla

$(".clCode").click(function(){ 
    alert($(this).text()); 
    return false; 
}); 

<table> 
<tr> 
<td class='clCode'><a href="#">Select</a></td><td>Code123</td> 
</tr><tr> 
<td class='clCode'><a href="#">Select</a</td><td>Code543</td> 
</tr><tr> 
<td class='clCode'><a href="#">Select</a</td><td>Code987</td> 
</tr> 
</table> 
+0

Bienvenido a StackOverflow, rshid! – Sampson

Respuesta

0
$("td.clCode a").click(function() { 
    var code = $(this).parent().next().text(); 
    alert(code); 
    return false; 
}); 
1

Conseguir el texto de la siguiente celda más es bastante sencillo:

$("td.clCode a").click(function(e){ 
    e.preventDefault(); 
    var nextText = $(this).parent().next().text(); 
}); 

Conseguir el texto de otra célula se puede hacer por su índice en la tabla fila rodea:

$("td.clCode a").click(function(e){ 
    e.preventDefault(); 
    // Get text from fourth table-cell in row. 
    var cellText = $(this).closest("tr").find("td:eq(3)").text(); 
}); 
+0

¿Por qué no '$ (this) .closest ('td'). Next(). Text()' directamente? –

+0

@K, el enlace (según el ejemplo) está inmediatamente dentro del TD. Llamar al 'más cercano (" td ")' tendría más sentido si el enlace fuera un nieto del DT, y no un hijo inmediato. – Sampson

0
$(".clCode a").click(function() { 
    alert($(this).parent().next().html(); 
    return false; // optional 
}); 

Creo que su marcado HTML es un poco redundante.

0

puede utilizar la siguiente función() de jQuery para obtener una lista de hermanos:

$(".clCode").click(function(){ 
    tmp = $(this).next()[0]; 
    alert($(tmp).text()); 
}); 
3
$(".clCode").click(function(){ 
    alert($(this).parent().next().text()); 
    return false; 
}); 

Eso debe obtener el siguiente td. También puede pasar un selector a next() si hay más tds y desea obtener algo que no sea el primero.

$(".clCode").click(function(){ 
    alert($(this).parent().next(':last').text()); 
    return false; 
}); 
Cuestiones relacionadas