gpt4 book ai didi

javascript - 在 JavaScript 中创建按钮元素

转载 作者:行者123 更新时间:2023-11-29 17:44:30 27 4
gpt4 key购买 nike

我试图在不使用 jQuery 的情况下在 javascript 中创建一个按钮元素。

当我尝试将它附加到 DOM 时,我不断收到错误消息。

"Cannot read property 'appendChild' of null"

我找遍了所有地方,却找不到如何创建按钮的方法。在 w3Schools 示例中,他们在已在 HTML 中创建的按钮元素上使用函数,这不是我想要做的。这是我的。

HTML:

<!DOCTYPE html> 
<html lang="en">
<head>
meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="myapp.js"></script>
</head>
<body>
<div id="btn">Button Here</div>
</body>
</html>

myapp.js

var element = document.createElement("button");
element.appendChild(document.createTextNode("Click Me!"));
var page = document.getElementById("btn");
page.appendChild(element);
console.log(element);

最佳答案

您的脚本在 DOM 完成加载之前运行,因此在您的“btn”div 存在之前运行。有一些简单的解决方案。一种是将您的脚本标签移动到正文的底部,例如:

<!DOCTYPE html> 
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="btn">Button Here</div>
<script src="myapp.js"></script>
</body>
</html>

另一种更好的解决方案是在脚本中添加一行,以确保在脚本运行之前已加载 HTML。

document.addEventListener("DOMContentLoaded", function() {
var element = document.createElement("button");
element.appendChild(document.createTextNode("Click Me!"));
var page = document.getElementById("btn");
page.appendChild(element);
console.log(element);
});

// Corrected "meta charset="UTF-8"".

关于javascript - 在 JavaScript 中创建按钮元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006577/

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