我插入行和单元格时出错,添加文本(innerHTML,textContent)和colspan。错误如下:
Safari浏览器:
" TypeError:尝试分配给只读属性。"
铬:
"未捕获的TypeError:无法分配给只读属性"
如果删除文本,colspan将起作用,任何其他单元格将显示;如果我删除了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中并且在严格模式下使用时会出现;但是,如果我删除&#34;使用strict&#34;,错误消息将消失,但问题仍将存在。有人说这是一个webkit错误,但同样的事情发生在Firefox中,减去错误信息。
可能相关的链接: TypeError: Attempted to assign to readonly property. on iOS8 Safari
我做错了什么或有解决方法吗?
附录:子优化是添加第二个没有插入文本的单元格,并给它一个colspan。
答案 0 :(得分: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>