Javascript 为什么不是';这个变量不是通过闭包定义的吗?
我有一个简单的JS代码,如下所示。当我点击Javascript 为什么不是';这个变量不是通过闭包定义的吗?,javascript,html,Javascript,Html,我有一个简单的JS代码,如下所示。当我点击h2元素时,我得到一个参考错误,表示console.log('h2Elements',h2Elements)上没有定义h2Elements当console.log('faqs',faqs)工作正常 h2元素不应该像faq是通过闭包定义的吗 <!DOCTYPE html> <html lang="en"> <body> <main id="faqs"> <h2><a
h2
元素时,我得到一个参考错误,表示console.log('h2Elements',h2Elements)
上没有定义h2Elements
当console.log('faqs',faqs)
工作正常
h2元素
不应该像faq
是通过闭包定义的吗
<!DOCTYPE html>
<html lang="en">
<body>
<main id="faqs">
<h2><a href="#" >What is JavaScript?</a></h2>
<div>
<p>JavaScript is a programming language that's built into the major web browsers.
</p>
</div>
</main>
<script>
var toggle = function() {
console.log('faqs', faqs)
console.log('h2Elements', h2Elements)
};
window.onload = function() {
var faqs = document.getElementById("faqs");
var h2Elements = faqs.getElementsByTagName("h2");
for (var i = 0; i < h2Elements.length; i++ ) {
h2Elements[i].onclick = toggle;
}
};
</script>
</body>
</html>
JavaScript是一种内置于主要web浏览器中的编程语言。
var toggle=函数(){
console.log('FAQ',FAQ)
console.log('h2Elements',h2Elements)
};
window.onload=函数(){
var faqs=document.getElementById(“faqs”);
var h2Elements=faqs.getElementsByTagName(“h2”);
对于(变量i=0;i
常见问题解答和H2元素不在切换功能的范围内。toggle函数中的faqs变量正在提供输出,因为“faqs”是某个DOM元素的id。toggle
方法对h2Elements
不可见。您在哪里为html正文中的任何标记提供了id作为h2Elements
,它的定义是因为。我相信getElementsByTagName返回的是一个集合,而不是元素引用