在待办事项列表中,我正在尝试删除已选中的项目,但我收到错误 - "不是对象中的空(评估'itemText.style')"
谁能解释一下我应该如何改变它以使删除线工作?如果可能的话,我也试图避免将CSS放在我的HTML文件中。
function removeItem() {
var boxId = this.id.replace("boxId_", "");
var itemText = document.getElementById("item_", + boxId);
itemText.style.setProperty("text-decoration", "line-through"); //error here
}
function addNewItem(list, itemText) {
totalItems++;
var listItem = document.createElement("li");
var checkBox = document.createElement("input");
checkBox.type = "checkbox";
checkBox.id = "cb_" + totalItems;
var span = document.createElement("span");
span.id = "item_" + totalItems;
span.innerText = itemText;
checkBox.onclick = removeItem;
listItem.appendChild(checkBox);
listItem.appendChild(span);
list.appendChild(listItem);
}
var btnNew = document.getElementById("btnAdd");
var totalItems = 0;
var inItemText = document.getElementById("inItemText");
inItemText.focus();
btnNew.onclick = function() {
var itemText = inItemText.value;
if (!itemText || itemText == "") {
return false;
}
addNewItem(document.getElementById("todoList"), itemText);
};
正是因为这行
var itemText = document.getElementById("item_", + boxId);
结束引号后有一个逗号。您的代码基本上忽略了boxId
,因为它被视为另一个getElementById
忽略的参数。
来得及
var itemText = document.getElementById("item_" + boxId);