使用javascript进行某些类型的DOM操作是否需要全局变量?
在下面的示例代码中,我想知道为什么名为child的变量必须是全局变量(无变量)才能使代码工作。我还想知道下面的代码是否因为有一个全局变量而被认为是不好的做法,以及下面的代码的更好的表现形式是什么样子的。谢谢使用javascript进行某些类型的DOM操作是否需要全局变量?,dom,Dom,在下面的示例代码中,我想知道为什么名为child的变量必须是全局变量(无变量)才能使代码工作。我还想知道下面的代码是否因为有一个全局变量而被认为是不好的做法,以及下面的代码的更好的表现形式是什么样子的。谢谢 <!DOCTYPE html> <meta charset="UTF-8"> <title>dom</title> <div class="product"> <h2> Product Name </h2>
<!DOCTYPE html>
<meta charset="UTF-8">
<title>dom</title>
<div class="product">
<h2> Product Name </h2>
<img src="pic.jpg" />
<p> Description </p> </div>
<script>
var products = document.getElementsByClassName("product"),
child; // how come var breaks the code ?
for ( i = 0; i < products.length; i++) {
child = products[i].firstChild;
while (child.nodeType !== 1) {
child = child.nextSibling;
}
console.log(child);
}
</script>
多姆
品名
说明
var products=document.getElementsByClassName(“产品”),
儿童;//为什么var会破坏代码?
对于(i=0;i
您已经有了一个var
,因为child前面有一个逗号。因此,添加var
将使您
var product, var child
这是违法的
child
不是全局的,因为中的var
var product, child
适用于var
之后的整个变量列表。(嗯,子项
无论如何都是全局的,因为它没有嵌套在函数中
。但这与var
或var
无关)
如果您坚持使用var
两次,请编写
var product = ... ;
var child;
好的,谢谢。这不是我的密码。我是从一本书中读到的,对此很好奇。我被语法弄糊涂了