基本上,我想知道的是我能做些什么,基本上就是这样:
document.getElementsByClassName('particle')[all].addEventListener('mouseover', Jump, false);
我已经尝试过使用for循环,它冻结了浏览器:
for(var i=0; i <= document.getElementsByClassName('particle').length, i+1){
document.getElementsByClassName('particle')[i].addEventListener('mouseover', Jump, false);
}
为什么没有这个工作? 我该怎么做才能达到这个效果?
我也试过了:
document.getElementsByClassName('particle')[0,1,2,3,4].addEventListener('mouseover', Jump, false);
然而,这也没有奏效。 。 。它只适用于第一个和最后一个元素,但不适用于任何其他元素。
答案 0 :(得分:3)
for
循环是正确的方法。
for(var i=0; i <= document.getElementsByClassName('particle').length, i+1){
应该是
for (var i=0; i<document.getElementsByClassName('particle').length; i+=1) {
此外,如果您只查询一次DOM会更有效:
var particles = document.getElementsByClassName('particle');
for (var i=0; i<particles.length; i+=1) {
particles[i].addEventListener('mouseover', Jump, false);
}
答案 1 :(得分:0)
<强>更新强>
for(var i=0; i <= document.getElementsByClassName('particle').length, i+1){
应该是
for(var i=0; i < document.getElementsByClassName('particle').length; i++){
^ ^ ^
第一个错误:由于我从0开始,您应该使用<
而不是<=
Seconde错误:,
应为;
第三个错误:i
应该在循环中重新分配值,因此它应该是i++
而不是i+1
请注意,getElementsByClassName()不是available up to and including IE8。
确保您的浏览器支持此方法。