求老师帮忙解释一下这节课里面的script代码

求老师帮忙解释一下这节课里面的script代码

http://img1.sycdn.imooc.com//climg/5f3176f50954aeaa12060833.jpg

老师!

我怎么感觉大家都能听懂,我怎么一点儿都不明白,提问区也没有谁问了这么愚蠢的问题。

跪求老师帮忙解释!!

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕久久 2020-08-12 09:22:10

同学你好,理解正确,很棒,祝学习愉快!

好帮手慕久久 2020-08-11 17:28:47

同学你好,不要急,问题回复如下:

1. “var oddP = getByClassName('odd');”这句代码中的getByClassName方法,是我们简单封装的一个方法,它的功能是按照类名获取元素。比如这里,我们传入类名“odd”后,“getByClassName('odd')”就是获取页面上所有类名为“odd”的元素。它的具体实现就是下面“function getByClassName(className, parentNode) {……}”这些代码。之所以封装这个函数,是因为“document.getElementsByClassName”方法有兼容性问题,所以封装了这个通过类名获取元素的兼容性方法getByClassName。

2. 定义getByClassName这个方法时,参数有两个,一个是“className”,一个是“parentNode”,它们两个都是形参,名字可以更换成其他的。其中“className”是指获取类名是什么的元素,“parentNode”是指在哪个父节点下面获取类名为“className”的元素。

如下:

http://img1.sycdn.imooc.com//climg/5f32647d092ac86805540216.jpg

http://img1.sycdn.imooc.com//climg/5f3264870901489414470311.jpghttp://img1.sycdn.imooc.com//climg/5f32648a09d4262204750172.jpg

3. nodeList的初始值是空数组,当节点中,有满足if的条件的,就会将该节点追加到nodeList中,因此,nodeList用来装所有满足条件的节点,具体如下(仔细看注释):

http://img1.sycdn.imooc.com//climg/5f32649b09282dfa10220653.jpg

其中,“getElementsByTagName('*')”就代表获取所有元素,同学可以理解成固定用法,即语法中规定这样写,是获取所有元素,因此我们可以这样写。可以类比一下通配符选择器:

http://img1.sycdn.imooc.com//climg/5f3264c0097606f903870141.jpg

同学试着理解一下。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

  • 提问者 沉木岩 #1
    老师!真的很感谢,终于弄明白这段代码是怎么回事了: var allNodes = parentNode.getElementsByTagName("*"); parentNode表示父节点,不管有没有传入父节点参数,虽然HTML文件中没有父节点元素,因为parentNode = parentNode || document; ,所以有没有父节点效果都是一样的。 非常感谢老师很耐心的对我这个问题进行解答,感谢!
    2020-08-11 23:39:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师