如何获取单击行的值

时间:2012-02-17 14:21:34

标签: jquery

如何在渲染的GridView中从我点击的TD中获取TD的值?

例如:当我点击第五个TD时,我需要第二个TD的值

$("td:eq(8)", "#GridView1 tbody tr:eq(" + index + ")").html("<div id='divActionProp'><span class='actionProposta' id='action_2'><b>Sell</b></span> | <span class='actionProposta' id='action_3'><b>Delete</b></span></div></td>");

我尝试了以下

example = $("td:eq(0)", "#GridView1 tbody tr").html();

但这会返回我的第一行(TR),我想要点击的行(TR);

我的功能,我试图从同一行中点击的TD中获取TD的值

$('.acaoProposta').live('click', function () {       

    example  = $("td:eq(0)", "#grdDetalheProposta tbody tr").html(); 
});

5 个答案:

答案 0 :(得分:2)

您没有说明如何处理点击事件,但在一般意义上,事件处理程序this指的是事件被触发的元素,因此:

$("#GridView1 tbody tr").click(function() {
   var example = $("td:eq(0)", this).html();
});

更新:显然,您的点击被绑定(使用.live())到其他列之一的div。没问题,再次this引用被点击的元素,所以从那里你可以通过DOM找到它所属的tr,然后在那个tr中找到你关心的td:

$('.acaoProposta').live('click', function () {
    var example = $("td:eq(0)", $(this).closest("tr")).html();
});

.closest() method通过DOM树向上查找与提供的选择器匹配的第一个祖先元素。

答案 1 :(得分:0)

试试这个

$("table tr").click(function()
{

 alert($(this).html()); 

});

检查小提琴

http://jsfiddle.net/MRXM8/

答案 2 :(得分:0)

由于您点击,您需要设置点击事件处理程序:

$('#GridView1 tbody tr').click(function(){
   alert(this.innerText || this.textContent); // get row html
});

要获得各个TD的内容,您应该:

$('#GridView1 tbody tr td').click(function(){
   alert(this.innerText || this.textContent); // get cell html
});

请注意,您可以使用$(this).html(),但使用this.innerText || this.textContent会更快一些。

答案 3 :(得分:0)

你的HTML是什么样的?

这可行:

$('tr').click(function(){
    alert($(this).find('td').html());
});

答案 4 :(得分:0)

只需将tr实例传递给搜索

$("#GridView1 tbody tr").click(function(){
   alert($('td:eq(0)', this).html());
});

更新问题:

$('.acaoProposta').live('click', function () {       

    example  = $("td:eq(0)", this).html(); 
});

this - 是点击tr元素的实例。