Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是否错误地使用了文档?_Javascript_Jquery_Addeventlistener - Fatal编程技术网

Javascript 我是否错误地使用了文档?

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

最近,我从使用jQuery库转向使用原始Javascript,以加深对该语言的理解(尽管您会注意到jQuery是在后台运行的,以支持遗留函数)

我正试图使用
.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!')});