2011-12-22 209 views
2

我有一個表如下;JQuery遍歷表列

<table> 
<tr> 
<th scope="col"></th> 
<th scope="col">Column One</th> 
<th scope="col">Column Two</th> 
<th scope="col">Column Three</th> 
<th scope="col">Column Four</th> 
</tr> 
<tr> 
<th scope="row">Row One</th> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
</tr> 
<tr> 
<th scope="row">Row Two</th> 
<td></td> 
<td></td> 
<td class="click"></td> 
<td></td> 
</tr> 
<tr> 
<th scope="row">Row Three</th> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
</tr> 
<tr> 
<th>Row Four</th> 
<td></td> 
<td></td> 
<td class="target"></td> 
<td></td> 
</tr> 
<table> 

我希望能夠與一類的「點擊」點擊<td>,然後用一類的目標是提醒我,多少行走<td>。 (在上面的例子中它會返回2)。

有可能在表中的其他元素<td>與類對象的。我只對行數相同的行中我的「點擊」 td興趣,直到下一個目標。我的'點擊'<td>或其他列中的任何目標應該被忽略。

如果沒有其他「目標」 <td>「同一行中單擊元素後,S,提醒應改爲‘沒有其他的目標。’

我希望這是顯而易見的。

+0

那麼你的問題是什麼?你自己已經做了什麼? – 2011-12-22 14:40:13

回答

1

你是說像這樣一起?

var targetRowIndex = $('.target')[0].parentNode.rowIndex; 

$(".click").bind("click",function(){ 
    alert(targetRowIndex - this.parentNode.rowIndex); 
}); 

http://jsfiddle.net/BZDyr/3/

如果你意識到發生了什麼事情在該代碼可以實現可能的具體功能自己休息。

+0

嗨,這是非常接近的,但是,targetRowIndex始終返回表中類'.target'的第一個元素。我需要它來只返回* *旁邊有一類「.TARGET」這是在同一個表列「點擊」 – user469453 2011-12-22 15:06:20

+0

@ user469453的元素,是的,我沒有做代碼,您可以直接複製的指數糊。這就是爲什麼它說'如果你意識到代碼中發生了什麼,你可以自己實現其他精確的功能。我只是向你展示如何用一個簡單的例子來檢索'rowIndex',而不是創建你的應用程序。 :)提示:'targetRowIndex'是靜態的,'[0]'表示帶有'.target'類的第一個元素。 :P – Esailija 2011-12-22 15:08:12

+0

嗨Esailija,多數民衆贊成在此非常感謝 - 有沒有一種方法,我可以找到列索引也(我試圖明顯改變rowIndex colIndex)? – user469453 2011-12-22 15:16:49

1

你也許可以找到使用parent()closest()組合的解決方案,與兄弟姐妹,下一個,上等基本上都採用的遍歷方法來選擇"td.target"