javascript - 未捕获的类型错误 : Cannot set property 'textContent' of null

标签 javascript html

我在尝试跟进 Udemy JS 项目时遇到了以下错误。我的 3 个全职开发 friend 无法解决这个问题,我已经阅读了 10 - 15 篇关于这个错误及其变体的 StackOverflow 文章,但似乎没有任何应用。

这是常见的错误:

Uncaught TypeError: Cannot set property 'textContent' of null
    at Object.displayBudget (app.js:177)
    at updateBudget (app.js:219)
    at ctrlAddItem (app.js:236)
    at HTMLDocument.<anonymous> (app.js:205)

这看起来很简单,但是将脚本放在 HTML 底部的结束 body 标记之前的常见解决方案并不适用于查询名称的匹配元素。我已经对这两件事进行了三重检查,甚至根据某人的建议添加了 JQuery .ready 函数以确保页面正在加载。

我已经在控制台中为上面引用的所有行设置断点并单步执行代码,并且在失败之前我的变量看起来像是已定义并且不是 NULL。请参阅所附图片或下方图片。

Code Step Through

'budget__value' 完全存在于 html 中。

<body>

        <div class="top">
            <div class="budget">
                <div class="budget__title">
                    Available Budget in <span class="budget__title--month">%Month%</span>:
                </div>

                <div class="budget__value">+ 2,345.64</div>

这是一个Fiddle我的代码。如果您想看看我在这里介绍了什么,我也已将它推送到 Github (/Laflamme02/BudgetApp)。

我已经为此苦苦挣扎了至少 2 周,所以帮助我解决这个问题的人将是我最喜欢的人。

最佳答案

您忘记了 DOMString.budgetLabel 中类名前面的点。它应该是:

document.querySelector('.budget__value').textContent = obj.budget

从您的 JSFiddle 中,您可以看到您也忘记将点放在其他几个字符串的前面:incomeLabelexpensesLabelpercentageLabel。所有四个都是简单的修复。

var DOMstrings = {
    inputType:          '.add__type',
    inputDescription:   '.add__description',
    inputValue:         '.add__value',
    inputBtn:           '.add__btn',
    incomeContainer:    '.income__list',
    expensesContainer:  '.expenses__list',
    budgetLabel:        'budget__value',
    incomeLabel:        'budget__income--value',
    expensesLabel:      'budget__expenses--value',
    percentageLabel:    'budget__expenses--percentage'
};

关于javascript - 未捕获的类型错误 : Cannot set property 'textContent' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42603033/

相关文章:

javascript - 在发送 ajax 提交之前验证表单

javascript - 在插入数据库之前删除数组的重复值

php - 制作一个用户可以在其中键入值或从列表中选择的选择框

jquery - 悬停时更改表格行背景颜色

html - 当值为 null 时使用 Thymeleaf

Javascript 检查两个数字数组中最接近的不同值

javascript - 我们可以在 formik YupValidationSchema 中添加自定义验证吗?

javascript - 如何在公共(public)事件属性上加入两个事件流?

html - 以绝对位置作为百分比进行定位会把事情放在一个奇怪的地方

html - 如何在html中为 anchor 标签执行对齐