2017-03-05 155 views
2

我在尝试遵循Udemy JS项目时遇到以下错误。我的全职开发人员中的3人无法弄清楚,我已经阅读了关于这个错误以及它的变体的10 - 15个StackOverflow文章,但似乎没有任何应用。Uncaught TypeError:无法设置属性'textContent'为空

下面是常见的errror:

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的底部,而不是由名称具有相匹配的元素的通用解决方案质疑不适用。我已经三重检查了这两件事,甚至在某人的建议中添加了JQuery .ready函数,以确保页面被加载。

我已经在控制台中为上面提到的所有行设置了断点,并逐步通过代码,直接在失败之前,它看起来像我的变量被定义并且不是NULL。见附图或下面的图片。

Code Step Through

这budget__value“在HTML完全存在。我的代码是Fiddle。如果你想看看我在这里得到什么,我也将它推到Github(/ Laflamme02/BudgetApp)。

我一直在为此挣扎至少2周,所以无论谁帮我解决这个问题都是我最喜欢的人。

回答

1

您忘记了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' 
}; 
+0

这是我最喜欢的事情,曾经感到愚蠢的。 @gyre,你是我最喜欢的人。非常感谢你。 – theChrisFlame

+0

很高兴帮助!另外,我刚刚检查了您的JSFiddle,并且还有三个类似的错别字。看到我上面编辑的帖子。 – gyre

相关问题