gpt4 book ai didi

javascript - 使用 JavaScript 创建动态 HTML

转载 作者:可可西里 更新时间:2023-11-01 13:26:16 26 4
gpt4 key购买 nike

我正在做一个项目,需要动态构建 HTML 代码。

我在 main.js 中有这段代码:

function main() {
this.dashboard = new Layer("dashboard");
this.dashboard.addText("Hello, World!");

this.newLayer = new Layer("somelayer");
this.anotherLayer = new Layer("somenewlayer");
this.newLayer.addText('testing...');
this.newLayer.addLayer(anotherLayer);

this.dashboard.addLayer(newLayer);

this.dashboard.update();

$("#wrapper").html('');
$("#wrapper").append(this.dashboard.getElement());
}

主体加载完成后调用 main 函数。

我还有一个包含以下代码的 layer.js 文件:

function Layer(id) {
this.id = id;
this.children = [];
this.el = null;
}

Layer.prototype.addText = function(text) {
this.children.push(text);
}

Layer.prototype.addLayer = function(l) {
this.children.push(l);
}

Layer.prototype.getElement = function() {
return this.el;
}

Layer.prototype.update = function() {
this.el = document.createElement('div');
this.el.className += " layer";
for (var i = 0; i < this.children.length; i++) {
child = this.children[i];
alert('child (' + child + ') is...');
if(typeof child === 'string') {
alert('...a string');
txt = document.createTextNode(child);
this.el.appendChild(txt);
} else {
alert('...not a string');
child.update();
this.el.appendChild(child.getElement());
}

alert('um kyankst');
}
}

这是用来动态创建图层并向其中添加文本或更多图层的。在我调用更新后,它应该将其转换为 HTML。

使用以下 HTML...

<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="styles/styles.css".>
<script src="scripts/jQuery.min.js"></script>
<script src="scripts/main.js"></script>
<script src="scripts/layer.js"></script>
</head>
<body onload=main()>
<div id="wrapper"></div>
</body>
</html>

我几乎得到了我正在寻找的结果——一个 DIV,里面有一些文字说“Hello, World”,然后是另一个 DIV。

但是,在另一个 DIV 中,我添加了文本“testing...”和另一个层/DIV,但它似乎没有显示。

有人知道为什么会这样吗?

最佳答案

在您的 Layer.prototype.update 函数中,将 child 设为局部变量:

改变:

child = this.children[i];

...到:

var child = this.children[i];

没有 varletconst,并且由于代码不在 use strict 规则下,变量 child 假定在全局范围内。在全局范围内,该值从一个 update 方法执行到另一个。

JSBin example

关于javascript - 使用 JavaScript 创建动态 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37749187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com