2010-01-18 40 views
5

Tôi muốn nhấp chuột vào một thẻ neo (a href) trong một bảng và trích xuất nội dung của ô kế tiếp (hoặc bất kỳ tế bào specifc trong hàng đó)jquery - nhận yếu tố td trong bảng

$(".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

Chào mừng bạn đến với StackOverflow, rshid! – Sampson

Trả lời

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

Lấy văn bản từ các tế bào tiếp theo trên là khá thẳng về phía trước:

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

Lấy văn bản từ tế bào khác có thể được thực hiện bằng chỉ số của nó trong xung quanh bàn hàng:

$("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

Tại sao không '$ (this) .closest ('td'). Next(). Text()' trực tiếp? –

+0

@K, Liên kết (theo ví dụ) là ngay lập tức trong TD. Gọi 'gần nhất (" td ")' sẽ có ý nghĩa hơn nếu liên kết là một đứa cháu của TD, và không phải là một đứa trẻ ngay lập tức. – Sampson

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

Tôi nghĩ rằng đánh dấu HTML của bạn hơi dư thừa một chút.

0

bạn có thể sử dụng tiếp theo() chức năng jquery để có được một danh sách các anh chị em:

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

Điều đó sẽ giúp các td tới. Bạn cũng có thể vượt qua một bộ chọn để tiếp theo() nếu có nhiều tds và bạn muốn có được một cái gì đó khác với cái đầu tiên.

$(".clCode").click(function(){ 
    alert($(this).parent().next(':last').text()); 
    return false; 
}); 
Các vấn đề liên quan