JS DOM createElements 和appendChild 不起作用

我正在尝试创建一个包含一些学生信息的网站。因此,我需要创建动态配置文件卡并将它们附加到正文中。但 DOM 总是让我着迷。


function student(src, name) {

    this.src = src;

    this.name = name;

}


var student1 = student(1, "ABC");


var card = document.createElement('div');

card.className = 'card';


var image = document.createElement('img');

image.src = 'images\/students\/' + student1.src + '.jpg';

card.appendChild(image);


var stuName = document.createElement('p');

stuName.className = 'name';

var stuNameText = document.createTextNode(student1.name);

stuName.appendChild(stuNameText);

card.appendChild(stuName);

然而屏幕上什么也没有显示。place这里是body的id。任何帮助将不胜感激。


编辑:

显然应用所有必要的更改并将我的脚本标记移动到正文会有所帮助。


绝地无双
浏览 91回答 3
3回答

翻翻过去那场雪

您创建 Student1 对象的方式是错误的, var student1 = new&nbsp; student(1, "ABC"); 您忘记了新的关键工作function student(src, name) {&nbsp; &nbsp; this.src = src;&nbsp; &nbsp; this.name = name;}var student1 = new&nbsp; student(1, "ABC");var card = document.createElement('div');card.className = 'card';var image = document.createElement('img');image.src = 'images\/students\/' + student1.src + '.jpg';card.appendChild(image);var stuName = document.createElement('p');stuName.className = 'name';var stuNameText = document.createTextNode(student1.name);stuName.appendChild(stuNameText);card.appendChild(stuName);var main=document.getElementById('main')main.appendChild(card).card{&nbsp; &nbsp; color: palevioletred;&nbsp; &nbsp; background: yellow;}<div id="main"></div>

红糖糍粑

您没有将代码附加到任何 DOM 元素,也没有在 body 中创建新的 div 并将代码附加到该 div 中。&nbsp;<div id="stdCard"></div>&nbsp;然后你可以使用innerHTML将卡片附加到创建的父div中。document.getElementById("stdCard").innerHTML = card;

MYYA

您必须将所有这些新创建的元素附加到 DOM 中已有的 div 中,否则 body 标记也可以工作。目前,您创建的元素未附加到 DOM。假设你有一个 div<div&nbsp;id="mydiv"></div>您可以将新创建的元素附加到该 div 上,如下所示:ley&nbsp;mydiv&nbsp;=&nbsp;document.getElementById('mydiv'); mydiv.appendChild(card);或者你可以将它附加到正文本身,如下所示:ley&nbsp;body=&nbsp;document.getElementByTagName('body'); body.appendChild(card);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5