在非对象中为 null(评估项文本.样式)



在待办事项列表中,我正在尝试删除已选中的项目,但我收到错误 - "不是对象中的空(评估'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); 

最新更新