2012-07-06 91 views
2

反正我有可以使用JavaScript中的<表>得到的innerHTML的n指定 <TD>?獲取<table>元素的第n個​​innerHTML的動態

由於我的表格是自動生成的,因此我的<td>沒有ID。我正在使用以下HTML代碼:

<table id="table"> 
    <tr> 
    <td onmouseover="myTD()">Cell 1</td> 
    <td onmouseover="myTD()">Cell 2</td> 
    <td onmouseover="myTD()">Cell 3</td 
    </tr> 
    <tr> 
    <td onmouseover="myTD()">Cell 4</td> 
    <td onmouseover="myTD()">Cell 5</td> 
    <td onmouseover="myTD()">Cell 6</td> 
    </tr> 
</table> 

但是,如何訪問,例如,單元格5?

非常感謝!

回答

1

情況你能澄清何時(在裝載時,在盤旋時......)以及你想要在哪裏(客戶端,服務器端......)這樣做?

如果您需要內部myTD細胞,只需使用這個關鍵字,這恰好是你的HTMLTableCell:

function myTD() { 
    this.style.color="red"; // just for the example, using CSS classes is much better 
} 
+0

這可能工作! – Wagtail 2012-07-06 16:11:20

+0

好的,我需要獲取TD元素的.innerHTML。我試過this.innerHTML,但沒有奏效。有任何想法嗎? – Wagtail 2012-07-06 16:16:40

+0

我得到了它的工作。但我必須通過onmouseover =「myTD(this)」和函數myTD(this)才能使其正常工作... – Wagtail 2012-07-06 16:36:49

11
var cells = document.getElementById('table').getElementsByTagName('td'); 

這將包含所有表格單元格。使用數組符號訪問特定的一個:

cells[4] 

這裏有一個快速的演示它改變背景顏色:

http://jsfiddle.net/jackwanders/W7RAu/

+0

太好了!謝謝。我現在就試試看......沒想到這個簡單的解決方案:) – Wagtail 2012-07-06 16:06:01

+0

@jackwanders你救了我。 – Leonidus 2012-12-24 11:39:19

1

不知道你想要什麼 - DOM:document.getElementsByTagName(「表」 )[0] .rows [2] .cells [1]

1

只使用CSS,你可以這樣做:

#table tr:nth-child(2) td:nth-child(2) 
{ 
    background:#ff0000; 
}​ 

jsFiddle example

1
function addClassToNthTD(n) { 
    var table = document.getElementById('table'); 

    for (var i = 0; i < table.childNodes.length; i++;) { 
     var rows = table.childNodes[i]; 
     for (var j = 0; j < tr.childNodes.length; j++;) { 
      n = n - 1; 
      if (n == 0) { 
       tr.childNodes[j].className = 'foo'; 
      } 
     } 
    } 
} 
1

這條線:

$('td') 

地點中的所有代碼的td元件成基於零的陣列的,所以用「細胞5」作爲其內容的單元將是陣列的第五元素,即:

$('td')[4] 

jQuery also accepts CSS style selectors,所以如果你想ED的目標是連續每秒電池,你可以使用一個選擇,如:

$('tr td:nth-child(2)') 

通過選擇文件我已經掛讀,它使用起來非常方便。對於這類

0

我不知道你正在嘗試做的,但如果你想做一些「懸停」的能力,jquery可以做到這一點很簡單。我已經創建了一個例子小提琴http://jsfiddle.net/fd3GK/1/

2

傳遞細胞回功能:

<td onmouseover="myTD(this)">Cell 1</td>

從對象獲取的innerHTML:

function myTD(obj) { 
    alert(obj.innerHTML); 
}