javascript - Null in not an object(评估元素Text.style)

标签 javascript css object null

在待办事项列表中,我试图删除一个已勾选的元素,但我收到错误消息 - “Null in not an object (evaluating '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); 

关于javascript - Null in not an object(评估元素Text.style),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837321/

相关文章:

JavaScript 从自定义对象访问元素

javascript - 通过字符串选择全局变量,包括子属性

javascript - 标记不会出现在 GeoChart 上,但 map 显示得很好

jquery - 使用 JQuery 设置此 CSS 规则

html - 如何在内联元素上使用::首字母

java - 在 Java 中,char[] 是一个对象吗?

javascript - 我怎样才能使这个对象模式发挥作用?

javascript - 将随机 background.color 分配给具有随机 ID 的对象

javascript - 扁平化 JavaScript 中的嵌套对象/数组

Javascript遍历未知深度对象