Javascript document.querySelector返回null
我使用JS中的Javascript document.querySelector返回null,javascript,Javascript,我使用JS中的querySelector选择我用JS脚本填充的html标记。但是,每当我尝试在const questionCard中使用类.card存储div时,我都会得到null 为什么我不能选择卡片 HTML: JS: const questionBlock=document.querySelector(“.card container”); const questionCard=document.querySelector(“.card”); 函数构建(){ 让输出=[]; …这里有些
querySelector
选择我用JS脚本填充的html标记。但是,每当我尝试在const questionCard
中使用类.card
存储div时,我都会得到null
为什么我不能选择卡片
HTML:
JS:
const questionBlock=document.querySelector(“.card container”);
const questionCard=document.querySelector(“.card”);
函数构建(){
让输出=[];
…这里有些不重要的代码。。。
输出推送(
`
${current.question}
${answers.join(“”)}
`
);
})
questionBlock.innerHTML=输出;
}
build();
在调用build()
之后,需要调用document.querySelector('.card')
。它找不到尚不存在的HTML元素
const questionBlock = document.querySelector('.card-container');
function build() {
let output = [];
...some unimportant code here...
output.push(
`
<div class='card'>
<div class='question'>${current.question}</div>
<div class='answers'>${answers.join('')}</div>
</div>
`
);
})
questionBlock.innerHTML = output;
}
build();
const questionCard = document.querySelector('.card');
const questionBlock=document.querySelector(“.card container”);
函数构建(){
让输出=[];
…这里有些不重要的代码。。。
输出推送(
`
${current.question}
${answers.join(“”)}
`
);
})
questionBlock.innerHTML=输出;
}
build();
const questionCard=document.querySelector(“.card”);
更正确答案的另一种选择是:
const questionCard = document.getElementsByClassName('card');
现在:questionCard
是一个活动的HTMLCollection
,并且questionCard[0]
将是第一个包含card类的元素,在运行build()之前,您的html没有包含classcard
的元素
它是在JS中创建的。请参见编辑的注释-问题卡
不是“动态的”-当代码运行时设置该值-问题卡
为空,仅因为您随后添加了一个元素,所以没有任何更改。这是否回答了您的问题?
const questionBlock = document.querySelector('.card-container');
function build() {
let output = [];
...some unimportant code here...
output.push(
`
<div class='card'>
<div class='question'>${current.question}</div>
<div class='answers'>${answers.join('')}</div>
</div>
`
);
})
questionBlock.innerHTML = output;
}
build();
const questionCard = document.querySelector('.card');
const questionCard = document.getElementsByClassName('card');