javascript中的错误代码?

javascript中的错误代码?,javascript,class,setattribute,Javascript,Class,Setattribute,更改此项: TypeError: link[i] is undefined link[i].setAttribute('class', 'selected'); 为此: links[i].setAttribute('class', 'selected'); 或者更好的做法是: this.setAttribute('class', 'selected'); JavaScript中没有块作用域,因此您的i在迭代后停留在最后一个值 this.className = "selected"; 但

更改此项:

TypeError: link[i] is undefined
 link[i].setAttribute('class', 'selected');
为此:

links[i].setAttribute('class', 'selected');
或者更好的做法是:

this.setAttribute('class', 'selected');
JavaScript中没有块作用域,因此您的
i
在迭代后停留在最后一个值

this.className = "selected";
但是,由于您只需要使用处理程序引用元素,因此可以通过处理程序内部的
this
访问该元素


如果您确实需要
i
,那么您需要在每次迭代的新变量范围内对
i
进行范围限定

this.className = "selected";
var links=document.getElementById('subMenu').getElementsByTagName('a');
对于(变量i=0;i

或者只是将其作为属性添加到DOM元素。

更改此选项:

TypeError: link[i] is undefined
 link[i].setAttribute('class', 'selected');
为此:

links[i].setAttribute('class', 'selected');
或者更好的做法是:

this.setAttribute('class', 'selected');
JavaScript中没有块作用域,因此您的
i
在迭代后停留在最后一个值

this.className = "selected";
但是,由于您只需要使用处理程序引用元素,因此可以通过处理程序内部的
this
访问该元素


如果您确实需要
i
,那么您需要在每次迭代的新变量范围内对
i
进行范围限定

this.className = "selected";
var links=document.getElementById('subMenu').getElementsByTagName('a');
对于(变量i=0;i

或者只是将其作为属性添加到DOM元素中