我需要创建,装饰和追加儿童' divs'现有的。例如,在执行appendChildren之后,执行divs
<div id="a">
<div id="b">
</div>
</div>
应采用以下形式(假设decorateDiv添加文字&#34;这是新div&#34;在新div内)
<div id="a">
<div id="b">
<div>"This is new div"</div>
</div>
<div>"This is new div"</div>
</div>
这是我的代码
function appendChildren() {
var allDivs = document.getElementsByTagName("div");
for (var i = 0; i < allDivs.length; i++) {
var newDiv = document.createElement("div");
decorateDiv(newDiv);
allDivs[i].appendChild(newDiv);
}
}
function decorateDiv(div) {
var x = document.getElementByTagName("div");
var t = document.createTextNode("This is new div");
x.appendChild(t);
}
我是JavaSpript的新手。我究竟做错了什么?请帮我修复错误
答案 0 :(得分:0)
您传递给函数'decorateDiv'的参数'div'没有被使用过。 您可以更改decorateDiv函数,如下所示:
function decorateDiv(div) {
var t = document.createTextNode("This is new div");
div.appendChild(t);
}
希望这会有所帮助!!
答案 1 :(得分:0)
您未使用参数div
,而decorateDiv
应如下所示:
function decorateDiv(div) {
//div is the object element
var t = document.createTextNode("This is new div");
div.appendChild(t);
}
答案 2 :(得分:0)
&#34; allDivs&#34;变量获取更新何时将appendChild添加到任何div,因为要存储&#34; div&#34;的元素数组。标签名称。 因此,使用class来获取div。
<div id="a" class="test">
A
<div id="b" class="test">
B
</div>
</div>
这是用户脚本:
function appendChildren() {
var allDivs = document.getElementsByClassName("test");
for (var i = 0 ; i < allDivs.length ; i++) {
var newDiv = document.createElement("div");
decorateDiv(newDiv);
allDivs[i].appendChild(newDiv);
}
}
function decorateDiv(div) {
var t = document.createTextNode("This is new div");
div.appendChild(t);
}
appendChildren();
而且你也没有使用传递给装饰功能的参数。
这会奏效。试试这个..