2012-12-06 50 views
3

假設得到行ID在表中,這是我的表:如何從行索引使用JavaScript

<table> 
    <tr id="a"> 
     <TD>a</TD> 
    </tr> 
    <tr id="b"> 
     <TD>b</TD> 
    </tr> 
</table> 

我如何使用行指數從表中獲取行ID?

上面只是一個例子,其中id是靜態的,但在我的情況下,我的id是動態的,所以我不能使用 document.getElementById()

+1

即使使用動態ID,它仍然可以工作。 –

+2

'table.tr [1] .id' - >'b'? –

+2

@MarcB它應該是'table.rows'而不是'table.tr' – Dennis

回答

6

假設您的網頁上只有一個表:

document.getElementsByTagName("tr")[index].id; 

最好不過,你會給你的table一個id,雖然,並得到你這樣的排:

<table id="tableId"> 
    <tr id="a"> 
     <td>a</td> 
    </tr> 
    <tr id="b"> 
     <td>b</td> 
    </tr> 
</table> 
var table = document.getElementById("tableId"); 
var row = table.rows[index]; 
console.log(row.id); 

這種方式,你可以肯定你沒有得到任何干擾,如果你在你的頁面的多個表。

3

「所以,我怎麼能使用行指數從表中獲取行ID」

你會選擇table,並使用.rows財產指標得到該行。

var table = document.getElementsByTagName("table")[0]; // first table 

var secondRow = table.rows[1]; // second row 

然後你剛纔得到的ID的典型方式。

console.log(secondRow.id); // "b" 

DEMO:http://jsfiddle.net/MErPk/

2

答案已經被編輯 有了CSS3,你可以使用第n個孩子 selctor。下面的例子顯示的rowIndex = 2

alert(document.querySelector("table tr:nth-child(2)").id); 

在jQuery中你可以用

alert($("table tr:nth-child(2)").attr('id')); 

做同樣的語法第n個孩子()可以在CSS中使用

<style> 
    tr:nth-child(2) { 
     color: red; 
    } 
</style> 
+0

爲什麼在獲取表格行這麼簡單的事情上使用jQuery? – Cerbrus

+0

只是一個例子來顯示nth-child(也是一個CSS選擇器)是如何工作的。 –

+0

不夠公平,但你可能想提一下[jQuery的可怕程度如何慢](http://jsperf.com/table-row-native-vs-jquery)。 – Cerbrus

相關問題