2015-05-11 51 views
1

我在插入行和單元格時出現錯誤,添加了文本(innerHTML,textContent)和colspan。錯誤讀取:如何在單元格中添加colspan和文本?

Safari瀏覽器:

「類型錯誤:試圖將分配給只讀屬性。」

鉻:

「遺漏的類型錯誤:無法分配給只讀屬性」

如果我刪除文本中,合併單元格將工作與任何其他細胞會顯示;如果我刪除了colspan,文本將顯示。如果我試圖保持這兩者,除了出現錯誤之外,其他任何存在的單元格都將消失,並且colspan將無法工作。

實施例的HTML:

<table id ="my_table"> 
        <thead> 
         <tr> 
          <th>text</th> 
          <th>text</th> 
          <th>text</th> 
          <th>text</th> 
          <th>text</th> 
         </tr> 

例JS:

function test3() { 

    //get the table id; 
    var table = document.getElementById('my_table'); 

    //create row, cell 
    var my_row = table.insertRow(-1); 
    var total = my_row.insertCell(0).textContent = "my colspan text"; 

...或

var total = my_row.insertCell(0).innerHTML = "my colspan text"; 

...然後

total.colSpan = "4"; 
} 

當我搜索這個問題時,我讀到這存在於iOS8中,並且在嚴格模式下使用時發生;但是,如果我刪除「嚴格使用」,錯誤消息將消失,但問題將持續存在。有人說這是一個webkit的bug,但同樣的事情發生在Firefox,減去錯誤信息。

可能相關鏈接: TypeError: Attempted to assign to readonly property. on iOS8 Safari

上午我做錯了什麼,還是有解決方法嗎?

附錄:子優化是添加沒有插入文本的第二個單元格,並給它一個colspan。

回答

3

my_row.insertCell(0).textContent = "my colspan text"不返回該單元格,則返回字符串分配給textContent

 function test3() { 
 

 
     //get the table id; 
 
     var table = document.getElementById('my_table'); 
 

 
     //create row 
 
     var my_row = table.insertRow(-1); 
 
     //create cell 
 
     var total = my_row.insertCell(0); 
 
     //set properties 
 
     total.textContent = "my colspan text"; 
 
     total.colSpan = 4; 
 
     } 
 
window.addEventListener('load', test3, false);
<table id="my_table" border="1"> 
 
    <thead> 
 
    <tr> 
 
     <th>text</th> 
 
     <th>text</th> 
 
     <th>text</th> 
 
     <th>text</th> 
 
     <th>text</th> 
 
    </tr> 
 
    </thead> 
 
</table>

+0

它的工作,謝謝。我永遠不會想象我的代碼行沒有返回單元格,只有字符串。 –

相關問題