javascript - 如何使用原型 javascript 在另一个 div 中创建 div
问题描述
我的目标是在另一个中创建 div,但我需要为此使用原型。老实说,我是编程新手。我知道这些对象应该与继承有一些共同点,但是我找不到任何可以解决我的问题的东西。
HTML中有一段代码
<input type="button" value="div" onclick='ND.createDiv()'>
<input type="button" value="divInside" onclick="NDI.insideCreateDiv()">
<div id='main'></div>
还有JavaScript代码
function Div(text, type){
this.text = text;
this.type = type;
}
Div.prototype.createDiv = function(){
this.type = document.createElement('div');
this.type.innerHTML = this.text;
main.appendChild(this.type);
}
Div.prototype.insideCreateDiv = function(){
let parent = this.type;
const child = document.createElement('div');
child.innerHTML = this.text;
parent.appendChild(child);
}
const ND = new Div('helloDIV', 'div');
const NDI = new Div('helloInsideDIV', 'div');
感谢您的时间
解决方案
首先,我想为糟糕的解释道歉。一段时间后,我弄清楚了我到底要做什么,如果有人感兴趣,我会留下一个代码:
const main = document.getElementById('main');
let layer1 = null;
let layer2 = null;
let layer3 = null;
let layer4 = null;
class Bucket{
constructor(name, text){
this.name = name;
this.text = text;
}
Layer1(){
layer1 = document.createElement(this.name);
layer1.innerHTML = this.text;
main.appendChild(layer1)
}
Layer2(){
layer2 = document.createElement(this.name);
layer2.innerHTML = this.text;
layer1.appendChild(layer2);
}
Layer3(){
layer3 = document.createElement(this.name);
layer3.innerHTML = this.text;
layer2.appendChild(layer3);
}
Layer4(){
layer4 = document.createElement(this.name);
layer4.innerHTML = this.text;
layer3.appendChild(layer4);
}
}
const L1_D = new Bucket('div', 'div');
const L1_P = new Bucket('p', 'paragraph');
const L1_S = new Bucket('span', 'span');
const L1_H = new Bucket('h5', 'h5');
const L2_D = Object.create(L1_D);
const L2_P = Object.create(L1_P);
const L2_S = Object.create(L1_S);
const L2_H = Object.create(L1_H);
const L3_D = Object.create(L2_D);
const L3_P = Object.create(L2_D);
const L3_S = Object.create(L2_D);
const L3_H = Object.create(L2_D);
const L4_D = Object.create(L3_D);
const L4_P = Object.create(L3_D);
const L4_S = Object.create(L3_D);
const L4_H = Object.create(L3_D);
<input type='button' value='1 Layer' onclick='L1_D.Layer1(); this.onclick=null;'>
<input type='button' value='2 Layer' onclick='L2_D.Layer2(); this.onclick=null;'>
<input type='button' value='3 Layer' onclick='L3_D.Layer3(); this.onclick=null;'>
<input type='button' value='4 Layer' onclick='L4_D.Layer4(); this.onclick=null;'>
<input type="button" value="Reload Page" onClick="document.location.reload(true)">
<div id='main'></div>
推荐阅读
- excel - 仅在运行宏时出现随机 #NAME 错误
- c# - Gridview 中的项目不会随着滚动而垂直显示
- javascript - Lodash + Json:将分组数据拆分并显示为 JSON 文件(帮助)
- jinja2 - 使用模板从 Airflow 变量 JSON 中获取列表
- c# - Winform 滚动条不显示在脚本初始化的 Datagridview 上
- c++ - 我如何保证数据在单独的链接器部分中的位置在扩展时不会改变?
- javascript - 当用户使用jQuery单击按钮时选择相同表单的输入内容
- function - 如何在Google表格中复制带有引号范围的函数
- flutter - 动画 SliverAppBar 或 AppBar = 在滚动时更改背景颜色
- jquery - 柏树 | 在特定条件下单击行内列中的按钮