2013-03-18 41 views
0

我試圖檢索整個表內的某個表格單元格的ID。jQuery:在整個表中獲取​​的ID

<table> 
    <tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    </tr> 
    <tr> 
    <td>4</td> 
    <td class="current">5</td> 
    <td>6</td> 
    </tr> 
</table> 

我試圖讓td.current指數而不是在關係<tr><table>

因此,而不是簡單地做

$('td.current').index() 

將輸出1,我需要它輸出4(整個表中第5個td)。

閱讀index() doc,我嘗試了多個東西,但總是返回-1。 我可以用循環做到這一點,但我只是試圖用選擇器來做到這一點。

這可能嗎?

+0

但代碼是做正是它應該。 – Ibu 2013-03-18 17:11:29

+0

「index()」的參數可以是像$('td')。index($('。current'))'這樣的元素,儘管這個例子效率很低,所以你應該緩存'$('。當前')' – andyb 2013-03-18 17:13:09

+0

@Ibu你是對的。我太簡化了我的例子。雖然j0861仍然找到解決我的問題的方法! – 2013-03-18 17:19:14

回答

5

$('.current').index('td');應該這樣做。

jsFiddle example

索引的關鍵部分()文檔是:

如果的.index()被調用上的元件的集合和一個DOM元素或 jQuery對象被傳遞in,.index()返回一個整數,指示傳入元素相對於原​​始集合的位置。

所以你需要的元素集合在通過它來對進行比較。

+1

很好的答案,不知道這會起作用。 – tymeJV 2013-03-18 17:13:19

0

嘗試:

table = $('.current').parent().children('td'); 
$('.current').index(table); 

編輯:

這種方法是一樣的@ j08691的,但它只是看起來表.selected是內內,萬一有在多個表同一頁。否則,@ j08691的答案會更好,因爲它使用更少的代碼。

1

好心嘗試這種::

$('td.current').index('td');