2015-11-04 41 views
0

我有一張表格,當我單擊任何單元格時,我想打印表格單元格的所有內部html,如果我通過按鈕執行此操作,但它工作正常但我這樣做與點擊時的電池它拋出一個錯誤未捕獲TypeError: Cannot read property 'innerHTML' of undefined.如何在javascript中單擊任何td時打印所有tds的innerHTML

function funcName(){ 
    var allTds = document.getElementsByTagName("td"); 
    for(var j=0; j<allTds.length;j++){ 
     allTds[j].onclick = function(){ 
      var chekTds = allTds[j].innerHTML; 
       console.log(chekTds);     
    } 
} 
+1

請清除上點擊單元格,要打印只電池HTML或整體細胞的HTML? –

+0

您應該添加括號'}'一次頁腳。 – egvrcn

+0

我想打印整個單元格html –

回答

1

更改這個...

function funcName() { 
    var allTds = document.getElementsByTagName("td"); 
    for (var j = 0; j < allTds.length; j++) { 
     allTds[j].onclick = function() { 
      var allTdsNew = document.getElementsByTagName("td"); 
      for (var k = 0; k < allTdsNew.length; k++) { 
       console.log(allTdsNew[k].innerHTML); 
        } 

        } 

       } 
      } 
+0

這個真正的作品,我想非常感謝你,阿南德 –

+0

最歡迎mohsin :) –

+0

這是非常低效的,* allTds *是一個活的集合,所以不需要每次調用該函數時都得到它。爲什麼不在文檔中放置單個偵聽器,並且如果點擊來自TD,請編寫所有TD的innerHTML? – RobG

0

你的onclick在你工作。檢查這個代碼。

<script> 
function wokring(){ 
    var allTds = document.getElementsByTagName("td"); 
    for(var j=0; j<allTds.length;j++){ 
     var chekTds = allTds[j].innerHTML; 
      alert(chekTds);     
    } 
} 
</script> 
<table> 
    <tr> 
     <td onclick="wokring()">1</td> 
     <td onclick="wokring()">2</td> 
    </tr> 
</table> 

刪除此行....

allTds[j].onclick = function(){ 
+0

因此,如果我有數百tds,那麼我必須將所有的功能放在你的意思? –

+0

tds正在動態生成 –

+0

如果自動生成,則不會在每個事件上添加onclick事件。 –