我不明白javascript中的创建元素函数



假设我编写以下JavaScript代码:-

//Line1
document.createElement("button");
//Line2
document.createElement("button").onclick="func();

现在的问题是接下来会发生什么场景1:JavaScript将创建两个按钮。场景2:JavaScript将创建一个具有onclick属性的按钮。如果场景2是真的,那么JavaScript是如何在不调用getelement函数的情况下在第二行创建属性的。这意味着JavaScript是如何知道我仍在处理上一个按钮,而不要求创建新按钮的。

我是一个初学者,这是我第一次发布问题,所以请原谅我的错误。

createElement函数创建一个新元素并返回它

因此,在这里您将创建两个不同的按钮(每次调用函数时都有一个按钮(。

您可以看到,第二次调用createElement时,它与第一次不同。你可以这样测试以确保:

a = document.createElement("button")
b = document.createElement("button")
a == b // false

这将返回false,因为它们不同。

因此,由于a和b都是创建的元素,您可以调用

a.onclick = function() {}
// or
b.onclick = function() {}

执行这两行时,都会创建两个不同的元素并返回它们。请注意,它们还没有添加到DOM中,并且由于返回的元素没有在任何变量中捕获,因此以后不能将它们添加到DOM。

以下是在DOM中创建和添加按钮的正确方法:

var button = document.createElement('button');
button.innerText = "Button1";
button.onclick = handler;
document.getElementById('parent').appendChild(button);

最新更新