JS-DOM-creation , appendChild 无法执行?
JS-DOM-creation , appendChild can't be executed?
你好,我是新手,正在尝试 DOM-creation,但我遇到了 appendChild 的奇怪问题,第一次尝试和第二次都有效,但第三次我完全不知道。
这是我的 HTML:
<html>
<head>
<title>Tugas Anchor DOM!</title>
</head>
<body>
<div id="main">
</div>
<script src="script.js"></script>
</body>
</html>
我会将 HTML 和 DOM 转换为:
<html>
<head>
<title>Tugas Anchor DOM!</title>
</head>
<body>
<div id="main">
<div id="content">
<div class="content-post">
<h1>Judul Post</h1> <!-- IM STUCK HERE -->
<button class="share-post-btn">Share this Post</button>
</div>
<div class="content-post">
<h1>Judul Post 2</h1>
</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
但我坚持要为 h1
创建一个新的 appendChild,这也是 DOM 的另一个 newChild。
这是我的 js :
var menu = document.getElementById("main");
var mainDiv = document.createElement("div");
var newDiv1 = document.createElement("div");
var newDiv2 = document.createElement("div");
var newH1 = document.createAttribute("h1");
var newButton = document.createAttribute("button");
var createId = document.createAttribute("id");
var createAtt = document.createAttribute("class");
createId.value ="content";
createAtt.value = "content-post";
//top
mainDiv.setAttributeNode(createId);
menu.appendChild(mainDiv);
//1st
newDiv1.setAttribute('class','content-post');
mainDiv.appendChild(newDiv1);
var judul1 = newDiv1.appendChild(newH1); //appendChild can't be executed here ?
// judul1.innerHTML = "Judul Post";
//2nd
newDiv2.setAttribute('class','content-post');
mainDiv.appendChild(newDiv2);
对于 h1, span, p
,您应该使用 document.createElement
而不是 document.createAttribute
你应该这样做:
var mainDiv = document.getElementById('main');
var contentDiv = document.createElement('div');
var contentPostDiv1 = document.createElement('div');
var contentPostDiv2 = document.createElement('div');
var judul1 = document.createElement('h1');
var judul2 = document.createElement('h1');
var button = document.createElement('button');
contentDiv.setAttribute('id', 'content');
mainDiv.appendChild(contentDiv);
contentPostDiv1.setAttribute('class','content-post');
contentPostDiv2.setAttribute('class','content-post');
contentDiv.appendChild(contentPostDiv1);
contentDiv.appendChild(contentPostDiv2);
judul1.innerHTML = 'Judul Post'
button.setAttribute('class', 'share-post-btn');
button.innerHTML = 'Share this Post'
contentPostDiv1.appendChild(judul1);
contentPostDiv1.appendChild(button);
judul2.innerHTML = 'Judul Post 2';
contentPostDiv2.appendChild(judul2);
你好,我是新手,正在尝试 DOM-creation,但我遇到了 appendChild 的奇怪问题,第一次尝试和第二次都有效,但第三次我完全不知道。 这是我的 HTML:
<html>
<head>
<title>Tugas Anchor DOM!</title>
</head>
<body>
<div id="main">
</div>
<script src="script.js"></script>
</body>
</html>
我会将 HTML 和 DOM 转换为:
<html>
<head>
<title>Tugas Anchor DOM!</title>
</head>
<body>
<div id="main">
<div id="content">
<div class="content-post">
<h1>Judul Post</h1> <!-- IM STUCK HERE -->
<button class="share-post-btn">Share this Post</button>
</div>
<div class="content-post">
<h1>Judul Post 2</h1>
</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
但我坚持要为 h1
创建一个新的 appendChild,这也是 DOM 的另一个 newChild。
这是我的 js :
var menu = document.getElementById("main");
var mainDiv = document.createElement("div");
var newDiv1 = document.createElement("div");
var newDiv2 = document.createElement("div");
var newH1 = document.createAttribute("h1");
var newButton = document.createAttribute("button");
var createId = document.createAttribute("id");
var createAtt = document.createAttribute("class");
createId.value ="content";
createAtt.value = "content-post";
//top
mainDiv.setAttributeNode(createId);
menu.appendChild(mainDiv);
//1st
newDiv1.setAttribute('class','content-post');
mainDiv.appendChild(newDiv1);
var judul1 = newDiv1.appendChild(newH1); //appendChild can't be executed here ?
// judul1.innerHTML = "Judul Post";
//2nd
newDiv2.setAttribute('class','content-post');
mainDiv.appendChild(newDiv2);
对于 h1, span, p
document.createElement
而不是 document.createAttribute
你应该这样做:
var mainDiv = document.getElementById('main');
var contentDiv = document.createElement('div');
var contentPostDiv1 = document.createElement('div');
var contentPostDiv2 = document.createElement('div');
var judul1 = document.createElement('h1');
var judul2 = document.createElement('h1');
var button = document.createElement('button');
contentDiv.setAttribute('id', 'content');
mainDiv.appendChild(contentDiv);
contentPostDiv1.setAttribute('class','content-post');
contentPostDiv2.setAttribute('class','content-post');
contentDiv.appendChild(contentPostDiv1);
contentDiv.appendChild(contentPostDiv2);
judul1.innerHTML = 'Judul Post'
button.setAttribute('class', 'share-post-btn');
button.innerHTML = 'Share this Post'
contentPostDiv1.appendChild(judul1);
contentPostDiv1.appendChild(button);
judul2.innerHTML = 'Judul Post 2';
contentPostDiv2.appendChild(judul2);