2013-04-25 39 views
0

標題說明了一切。我有一個表格,它是頂部tr的日期列表。點擊一個特定的td,我希望能夠使用jquery從同一列的第一行獲取td值。給定一個特定的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> 

如果我點擊任何一個TD的在第1欄我要回值「1月1日」

如果我點擊任何TD在中col 2我想返回數值「Jan 2」

如果我點擊第3列中的任何td,我想返回值「Jan 3」

有意義嗎?

目前,我只希望這發生在空td的所以這裏是我的jQuery的開始。

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

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

}); 

謝謝!

回答

3

我建議:

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

JS Fiddle demo

+0

非常簡單和優雅。謝謝。 – 2013-05-10 21:29:29

+1

Matt:你真的很受歡迎,我很高興能有幫助! =) – 2013-05-10 21:43:28

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(); 
}); 

工作FIDLE是here

相關問題