在下面的代码中,我收到了上述错误,并不完全确定原因。我在这里看过其他线程,但似乎无法找到错误。
该脚本的目的是将字符串数组保存到localstorage中。然后将这些字符串数组加载到表中。
以下函数从我的网络表单字段中获取值: -
function saveContact() {
var contact = [nameDOM.value, addDOM.value, townDOM.value, postalDOM.value, mobDOM.value];
localStorage.setItem(window.localStorage.length, contact);
showContacts();
}
此功能将此信息放入表格中: -
function showContacts() {
for(i=0; i<window.localStorage.length; i++) {
var contactRow = cTableDOM.insertRow(i);
var contactCell = contactRow.insertCell(i);
var text = document.createTextNode(localStorage.getItem(i));
contactCell.appendChild(text);
}
}
我收到的行为是这样的;当我尝试进入不同的联系人&#34;进入我的桌子,第一个&#34;联系&#34;重复而不是后者&#34;联系&#34;。
答案 0 :(得分:3)
问题是您正在创建一个新行并调用insertCell(2)
。因为这大于您获得INDEX_SIZE_ERR的数字。
来自Mozilla(强调补充):
如果index为-1或等于单元格数,则单元格将作为行中的最后一个单元格附加。 如果省略index或大于行数,则会产生错误。
您也可以在新创建的appendChild
上致电td
。
var contactCell = contactRow.appendChild(document.createElement("td"));