为什么这么简单的函数都报错?

`

var tooldetailsFunc = function(e){
    // function tooldetailsFunc(e){
    var el = e.target;
    alert(1);
}
var tooldetails = document.getElementByClassName("details");
// var tooldetails = document.querySelector(".details");
// tooldetails.addEventListener("click", tooldetailsFunc);
// tooldetails.addEventListener("click",tooldetailsFunc);
tooldetails.addEventlistener("click",tooldetailsFunc);
// 这一句无故报错

`图片描述

curencys.js:40 Uncaught TypeError: tooldetails.addEventlistener is not a function

啊,受不了了,为什么 这么简单的函数都报错?
我只是想给 相同的类名添加 点击事件!
图片描述

var tooldetailsFunc = function(e){
    // function tooldetailsFunc(e){
    var el = e.target;
    alert(1);
}
var tooldetails = document.getElementByClassName("details");
// var tooldetails = document.querySelector(".details");
// tooldetails.addEventListener("click", tooldetailsFunc);
// tooldetails.addEventListener("click",tooldetailsFunc);
tooldetails.addEventlistener("click",tooldetailsFunc);
Uncaught TypeError: document.getElementByClassName is not a function


感谢各位的无私帮助,我会认真的实习基础的,
图片描述
图片描述
已经成功,我一点击,就2 嘿嘿

阅读 9.6k
9 个回答

别着急兄弟。首先getElementsByClassName返回的是一个元素数组,不能直接绑定事件的。你得取出数组的元素先
比如

for(var i = 0; i < tooldetails.length; i++){
    tooldetails[i].addEventlistener("click",tooldetailsFunc);
}

还是掌握基础先。比如api中传入哪些参数,返回哪些数据。

对了,还有楼下朋友提到的拼写错误。

兄弟,两个问题,先说第一个:

curencys.js:40 Uncaught TypeError: tooldetails.addEventlistener is not
a function

这里表示你 tooldetails这个变量没有addEventlistener方法,检查下,发现拼写错误。addEventListener

再说第二个:

Uncaught TypeError: document.getElementByClassName is not a function

这里表示document没有getElementByClassName这个function, 仔细点,真正的方法名是getElementsByClassName。 你少了一个s。

还有就是这个getElementsByClassName拿出来是一个数组。

通过className找元素可以找到多个,复数elements,getElementsByClassName。

既然是多个的话,绑定事件要循环绑定

addEventListener 大写
getElementsByClassName s
建议回去看看基础

两处拼写错误,要细心啊同学。

 addEventListener  L大写//驼峰命名法
getElementsByClassName  记得加s//理解函数名,className非单一性,所以是复数

首先你获取不到元素,你拼写错误,getElementsByClassName
其次,这个获得的是一个伪数据,并不是真正的数组元素,但是可以用循环
再次,绑定事件是得循环添加

拼写错啊,建议楼主用好一点的编辑器,不要用那些没提示的。反而降低效率

另外,你可以直接在浏览器下单步调试,看变量是什么类型,都包括哪些方法和参数。这也是个不错的学习途径

报错不是很明显了吗。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题