附录返回的子项 无法读取未定义的属性“容器Div”
appendChild returning Cannot read property 'containerDiv' of undefined
我正在尝试将div 元素添加到我的顶级div 容器中,但由于某种原因我收到错误。
这是我的代码。这是一个按钮,一旦你点击,就会在屏幕上添加一个框。
为了避免 this.
的 jQuery 错误,我在类之上定义了一个变量,叫做 self
var self = this;
所以这修复了jQuery错误。
$(this.button).click(function() {
self.newContainer = new divGenerator();
self.containerDiv.parentNode.appendChild(self.newContainer.divContainer);
});
真正奇怪的是,当我打印出来时
console.log("self.newContainer: "+self.newContainer.containerDiv);
结果我得到"self.newContainer: [object HTMLDivElement]
"。HTMLDivElement正是我所需要的,对吧?它是一个节点,appendChild(( 需要一个节点元素。所以一切似乎都是对的。但事实并非如此,为什么?
(我可能读错了,你必须发布divGenerator 的内部结构才能确定(你的问题只是一个命名错误......如果你愿意的话,这是一个错字。在以下行中:
self.containerDiv.parentNode.appendChild(self.newContainer.divContainer);
我注意到您正在打电话给divContainer
而不是containerDiv
self.newContainer
.除非你还有一个定义为divContainer
的属性,否则我猜你只需要将属性调用的名称更改为containerDiv
,就像代码的其余部分一样。
侧边栏:我注意到你提到
为了避免
this
的 jQuery 错误,我在类的顶部定义了一个变量,叫做self
据我所知,jQuery中没有这样的"错误"。相反,您正在对 this
的使用感到困惑, 是引用当前函数上下文(即您当前操作的对象(的关键字。
事实上,您的解决方案是 JavaScript 中的一个常见习惯用语,允许您通过分配给外部作用域中this
的变量来引用封闭上下文。我建议阅读本文,以阐明您对this
结构的理解以及如何使用它。
- 主干中的模型属性未定义
- JavaScript 2d 数组导致“无法读取未定义的属性'未定义'”
- JSON对象属性未定义
- Waypoint的循环,退出循环后属性未定义
- Javascript:错误“无法设置属性”..'未定义”
- 翡翠 - 显示对象属性 - 未定义
- 属性未定义,但控制台.log可以看到它
- JavaScript 对象的属性未定义
- Javascript 对象属性未定义(但属性已设置)
- DOM 元素属性未定义 - jquery / ruby on rails.
- Nodejs JSON 属性未定义
- 错误:窗口打开器的属性未定义
- angular Js:Array.lenght属性未定义
- 正在尝试访问JavaScript对象的属性=未定义
- Marionette属性未定义,请从API获取
- AngularJS作用域属性未定义
- 对象的属性未定义,尽管已指定值
- 为什么我一直收到一个错误,说对象属性未定义
- 对象属性未定义,但我看到它不是
- .map()img src属性未定义