Javascript 我是否错误地使用了文档?
最近,我从使用jQuery库转向使用原始Javascript,以加深对该语言的理解(尽管您会注意到jQuery是在后台运行的,以支持遗留函数) 我正试图使用Javascript 我是否错误地使用了文档?,javascript,jquery,addeventlistener,Javascript,Jquery,Addeventlistener,最近,我从使用jQuery库转向使用原始Javascript,以加深对该语言的理解(尽管您会注意到jQuery是在后台运行的,以支持遗留函数) 我正试图使用.addEventListener()将单击事件设置到btn,但我的控制台中出现以下错误: Uncaught TypeError: pleaseWork.addEventListener is not a function at eval (eval at globalEval (jquery.min.js:2), <a
.addEventListener()
将单击事件设置到btn,但我的控制台中出现以下错误:
Uncaught TypeError: pleaseWork.addEventListener is not a function
at eval (eval at globalEval (jquery.min.js:2), <anonymous>:16:9)
at eval (<anonymous>)
at Function.globalEval (jquery.min.js:2)
at text script (jquery.min.js:4)
at Ab (jquery.min.js:4)
at z (jquery.min.js:4)
at XMLHttpRequest.<anonymous> (jquery.min.js:4)
at Object.send (jquery.min.js:4)
at Function.ajax (jquery.min.js:4)
at Function.n._evalUrl (jquery.min.js:4)
任何帮助都将不胜感激。document.getElementsByClassName()返回一个数组。
数组没有de方法。addEventListener()文档。GetElementsByCassName()返回数组。
数组没有de方法。addEventListener()我对您的堆栈跟踪有点困惑。整个代码似乎是由jQuery执行的 下一行返回一个数组(有关详细信息,请参阅) 您必须循环遍历它们,并将处理程序分别附加到每个项上
for (i = 0; i < pleaseWork.length; i++) {
pleaseWork[i].addEventListener('click', function() {
alert('Boom!');
});
}
(i=0;i
请完成[i]。addEventListener('click',函数(){
警报(“轰!”);
});
}
希望这对您有所帮助。我对您的堆栈跟踪有点困惑。整个代码似乎是由jQuery执行的 下一行返回一个数组(有关详细信息,请参阅) 您必须循环遍历它们,并将处理程序分别附加到每个项上
for (i = 0; i < pleaseWork.length; i++) {
pleaseWork[i].addEventListener('click', function() {
alert('Boom!');
});
}
(i=0;i
请完成[i]。addEventListener('click',函数(){
警报(“轰!”);
});
}
希望这对您有所帮助。函数getElementsByCassName将返回html元素的集合,因此请使用indexer访问返回的每个元素 var plesework=document.getElementsByClassName('js-primary-medium-btn')
for(变量i=0,长度=plesework.length;i
函数getElementsByClassName将返回html元素的集合,因此请使用indexer访问返回的每个元素
var plesework=document.getElementsByClassName('js-primary-medium-btn')
for(变量i=0,长度=plesework.length;i
getElementsByClassName
返回一个元素列表(类似于数组),而不是一个元素。你是说,如果我在btn中添加一个id并使用getElementById()
我的问题就会解决?使用/不使用jQuery并不是理解JavaScript语言,这是关于理解web浏览器本机API的。如果您希望结果中包含多个元素,则需要更改代码以循环返回的列表。否则,使用[0]-或getElementById
同样有效(甚至更好)。一种替代的、广泛支持的方法是使用querySelector
(获取单个结果)或querySelectorAll
(获取结果列表)。。。这些函数的参数非常类似于您使用jQuery时使用的参数getElementsByClassName
返回元素列表(类似于数组),而不是单个元素。您是说,如果我向btn添加id并使用getElementById()
我的问题会得到解决吗?使用/不使用jQuery不是了解JavaScript语言,而是了解web浏览器本机API。如果您希望结果中包含多个元素,则需要更改代码以循环返回的列表。否则,使用[0]-或getElementById
同样有效(甚至更好)。一种替代的、广泛支持的方法是使用querySelector
(获取单个结果)或querySelectorAll
(获取结果列表)。。。这些函数的参数非常类似于使用jQueryIt时使用的参数,它返回类似于数组的对象,而不是实际的数组。(当然,您是对的,它没有addEventListener
方法。)它返回类似数组的对象,而不是实际数组。(当然,您是对的,它没有addEventListener
方法。)
for (i = 0; i < pleaseWork.length; i++) {
pleaseWork[i].addEventListener('click', function() {
alert('Boom!');
});
}
for (var i = 0, length = pleaseWork.length; i < length; i++)
pleaseWork[i].addEventListener('click', function(){alert('Boom!')});