第一次问问问题,对我说好话。我想我已经彻底查看了Stack,以免问一个重复的问题。
我有一个功能。
function createDivs(num) {
for(let inc = 0; inc < num; inc++) {
let div = document.createElement('div'),
tab_content = document.getElementsByClassName('tab-content');
div.className = 'classname';
div.id = `number-${inc}`;
div.innerHTML = 'did it work?';
tab_content.innerHTML = div;
}
}
HTML只是
<div class="tab-content">
<script>
createDivs(4);
</script>
</div>
我尝试过其他方法,比如
let tab_content = document.getElementsByClassName('tab-content');
tab_content.innerHTML = '<div class="classname" id=`number-${inc}`>did it work?</div>';
以及''
""
和``的其他变体,但两者都不起作用。
我也尝试了tab_content.appendChild(div);
,但也没有用。
实际上,这是我的实际代码的降级,因为我正在创建大量需要内容的元素,但我甚至无法让这一点工作。如果我删除for循环它甚至不起作用。我也确实看到了这个post,因此我尝试了appendChild,但同样也没有用。
答案 0 :(得分:0)
您的代码中有一些拼写错误。在循环中使用inc++
代替innerHtml
。未将tab_content作为数组访问并使用appendChild
而不是<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function createDivs(num) {
for(let inc = 0; inc < num; inc++) {
let div = document.createElement('div'),
tab_content = document.getElementsByClassName('tab-content')[0];
div.className = 'classname';
div.id = `number-${inc}`;
div.innerHTML = 'did it work?';
tab_content.appendChild(div);
}
}
</script>
</head>
<body>
<div class="tab-content">
<script>
createDivs(4);
</script>
</div>
</body>
</html>
。固定代码如下。
class Song():
def __init__(self, song_dict={}):
self.trackName = song_dict["trackName"]
self.trackNumber = song_dict["trackNumber"]
self.genre = song_dict["primaryGenreName"]["alternative"]
def __str__(self):
return "{} by {}".format(self.trackName,self.trackNumber,self.genre)
&#13;
答案 1 :(得分:0)
在我看来,你想要不设置innerHTML,但实际上要追加几个子节点。除此之外,您的代码中存在一些错误(getElementsByClassName)返回一个类似于数组的对象,而不仅仅是一个对象,因此您需要选择一个将div添加到。
此外,您在循环inc
中将i变量命名为i,因此它实际上不会增加循环。看看下面重写的代码,看看它是否能满足您的需求。
function createDivs(num) {
for(let inc = 0; inc < num; inc++) {
let div = document.createElement('div'),
tab_content = document.getElementsByClassName('tab-content');
div.className = 'classname';
div.id = `number-${inc}`;
div.innerHTML = 'did it work?';
tab_content[0].appendChild(div);
}
}
(function(){createDivs(4)})()
<div class="tab-content">
</div>
答案 2 :(得分:0)
你的for
循环不会增加其控制变量。将其更改为
for(let inc = 0; inc < num; inc++) {
和getElementsByClassName
返回一个类似于object的数组,而不是单个元素。所以你需要把它改成
tab_content = document.getElementsByClassName('tab-content')[0];