给定一个特定的td,使用Jquery从同一列的顶行获取td值

时间:2013-04-25 23:18:15

标签: jquery html-table

标题说明了一切。我有一个表是顶部tr的日期列表。单击特定的td,我希望能够使用Jquery从同一列的顶行获取td值。

例如:

<table>
  <tr>
     <td>Jan 1</td>
     <td>Jan 2</td>
     <td>Jan 3</td>
  </tr>
  <tr>
     <td>col 1, row 1</td>
     <td>col 2, row 1</td>
     <td>col 3, row 1</td>
  </tr>
  <tr>
     <td>col 1, row 2</td>
     <td>col 2, row 2</td>
     <td>col 3, row 2</td>
  </tr>
  <tr>
     <td>col 1, row 3</td>
     <td>col 2, row 3</td>
     <td>col 3, row 3</td>
  </tr>

如果我点击col 1中的任何一个td,我想返回值“Jan 1”

如果我点击col 2中的任何一个td,我想返回值“Jan 2”

如果我点击第3列中的任何一个td,我想返回值“Jan 3”

有意义吗?

目前,我只希望在空td发生这种情况,所以这是我的jQuery的开始。

$("table td:empty").dblclick(function(){

  $(TD VALUE FROM TOP OF SAME COLUMN).text();

});

2 个答案:

答案 0 :(得分:3)

我建议:

$('td').click(function(){
    var index = this.cellIndex;
    console.log($('tr').first().find('td').eq(index).text());
});

JS Fiddle demo

答案 1 :(得分:0)

这可以通过index函数的组合和选择tr时的一些过滤来完成:

$("table tr").not(":first").on("click", "td", function () {
    var $tr = $(this).parents("table").find("tr:first"),
        idx = $(this).index() + 1,
        srch = "td:nth-child(" + idx + ")",
        txt = $tr.find(srch).text();
});

工作方面是here