无法通过 querySelectorAll("class") 获取元素,在工厂函数中赋值 class
Unable to obtain element through querySelectorAll("class") , class assigned in factory function
我通过工厂函数创建了 3 个按钮并为它们分配了 class“btn”和 return 对象,现在我想访问所有具有 class“btn”的按钮,但我得到一个空的 NodeList
我想在标签变量
中存储所有具有class“btn”的按钮
const tabButton = function(name)
{
const button = document.createElement("button") // button creation
button.innerText = name
button.classList.add("btn")
return {button}
}
const Header = function()
{
const homeButton = tabButton("Home").button
const MenuButton = tabButton("Menu").button
const ContactButton = tabButton("Contact").button
const tabs = document.querySelectorAll(".btn")
console.log(tabs) // giving NULL value
return {tabs}
}
您的 tabButton
函数调用会创建元素,但不要将它们放在文档中的任何位置。 document.querySelectorAll
仅查找文档中的元素。如果将这些按钮放在文档中,它们会被 document.querySelectorAll
找到,但是没有一个函数可以遍历内存中各处的每个对象以查看它是否是匹配的按钮。只有查看文档或特定元素的函数。
下面的示例显示了将这些按钮放入文档之前和之后的结果:
const tabButton = function(name) {
const button = document.createElement("button");
button.innerText = name;
button.classList.add("btn");
return {button};
};
const Header = function() {
const homeButton = tabButton("Home").button;
const menuButton = tabButton("Menu").button;
const contactButton = tabButton("Contact").button;
console.log(document.querySelectorAll(".btn").length); // 0
document.body.appendChild(homeButton);
console.log(document.querySelectorAll(".btn").length); // 1
document.body.appendChild(menuButton);
console.log(document.querySelectorAll(".btn").length); // 2
document.body.appendChild(contactButton);
console.log(document.querySelectorAll(".btn").length); // 3
const tabs = document.querySelectorAll(".btn");
return {tabs};
};
Header();
我通过工厂函数创建了 3 个按钮并为它们分配了 class“btn”和 return 对象,现在我想访问所有具有 class“btn”的按钮,但我得到一个空的 NodeList
我想在标签变量
中存储所有具有class“btn”的按钮 const tabButton = function(name)
{
const button = document.createElement("button") // button creation
button.innerText = name
button.classList.add("btn")
return {button}
}
const Header = function()
{
const homeButton = tabButton("Home").button
const MenuButton = tabButton("Menu").button
const ContactButton = tabButton("Contact").button
const tabs = document.querySelectorAll(".btn")
console.log(tabs) // giving NULL value
return {tabs}
}
您的 tabButton
函数调用会创建元素,但不要将它们放在文档中的任何位置。 document.querySelectorAll
仅查找文档中的元素。如果将这些按钮放在文档中,它们会被 document.querySelectorAll
找到,但是没有一个函数可以遍历内存中各处的每个对象以查看它是否是匹配的按钮。只有查看文档或特定元素的函数。
下面的示例显示了将这些按钮放入文档之前和之后的结果:
const tabButton = function(name) {
const button = document.createElement("button");
button.innerText = name;
button.classList.add("btn");
return {button};
};
const Header = function() {
const homeButton = tabButton("Home").button;
const menuButton = tabButton("Menu").button;
const contactButton = tabButton("Contact").button;
console.log(document.querySelectorAll(".btn").length); // 0
document.body.appendChild(homeButton);
console.log(document.querySelectorAll(".btn").length); // 1
document.body.appendChild(menuButton);
console.log(document.querySelectorAll(".btn").length); // 2
document.body.appendChild(contactButton);
console.log(document.querySelectorAll(".btn").length); // 3
const tabs = document.querySelectorAll(".btn");
return {tabs};
};
Header();