问题描述问题出现的环境背景及自己尝试过哪些方法相关代码<script>
//声明构造函数
function ElementC (elementname,fatherelement,number) { //传入需要创建的元素名字
this.e = document.createElement(elementname); //传入需要加入哪个父元素的子元素末尾
this.fe = document.getElementsByTagName(fatherelement);
} //声明可继承方法,创建元素方法
ElementC.prototype.create = function () { this.fe.appendChild(this.e);
}
onload=function (){ //创建对象
var test = new ElementC("table","body"); //调用创建元素方法
test.create();
}</script>我想创建一个对象,有一个实现最简单的添加元素的方法,不过报错提示没有这个函数这里用用prototype声明,因为我看的视频教程说,这个属性里的方法都是可继承的。还有一点,关于javascript面向对象,原型,继承,什么子类之类讲解比较好的的视频哪里有啊,感谢各位大佬
2 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
document.getElementsByTagName这个方法返回的是一个集合,题中你写的是body标签,因此它会找到所有的body标签,整合成一个集合,供你使用
因此你将你的代码修改一下
// 在集合中拿第一个元素this.fe = document.getElementsByTagName(fatherelement)[0];
其实在2019年,我更推荐你使用document.querySelector(fatherelement)
;这个方法获取DOM节点非常非常方便
关于你说的js基础知识,我个人觉得看视频去了解这些基础知识是效率是比较慢的
建议你可以看书了解
推荐两本书 《js高级程序设计》,《你不知道的js上卷》,着重就轻,结合书本和网上资料,MDN等。
慕田峪4524236
TA贡献1875条经验 获得超5个赞
document.getElementsByTagName(fatherelement)
返回的是一个HTMLCollection
,也就是HTML 元素的集合。appendChild
是单个元素的函数。
建议运行程序的时候在错误的地方打断点,搞清楚每运行一行代码,各个变量的值是什么。
添加回答
举报
0/150
提交
取消