好懵逼啊 听了几遍。。
searchClass: "light dark" 这里是什么意思?这是把light dark 传入函数当中的searchClass变量当中去的意思?还是什么意思?这个怎么用的不明白
为什么调用过程中不需要把opts传入函数当中去? 没传入opts 那函数如何执行?难道searchClass: "light dark" 是函数opts的值么? 那这个值如何在函数中运行的?我的理解这样对不对:以下是两个页面中的代码:1.searchClass: "light dark" 2.var searchClass=opts.searchClass 所以 是不是1的代码当中的“light dark” 值是传入到了2当中light dark.searchClass 意思搜索获取light dark这个文本节点上的属性节点的class名称集?
74
收起
正在回答
4回答
希望可以帮到你!
陈立天
2020-01-30 18:27:17
这里用同学的正确代码尝试执行了 为啥console打印不出来? 然后IE浏览器和Chrome浏览器都报错了,而且还找不到这个myready是啥回事? 我不是引入JS文件了吗?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="/JS/myready.JS"></script> <script src="/JS/getElementByClassName.js"></script> <script> myReady(function () { var myUl2 = document.getElementById("myUl2"); var r = getelementsByClassName({ searchName : "light dark", node:myUl2 }); console.log(r[0].innerHTML); }); </script> </head> <body> <ul id = "myUl"> <li class = "light">1</li> <li class = "light dark">2</li> <li class="light">3</li> </ul> <ul id = "myUl2"> <li class = "light">1</li> <li class = "light dark">s</li> <li class="light">3</li> </ul> </body> </html>
var getelementsByClassName = function (opts) { var searchName = opts.searchName; var node = opts.node || document; var tag = opts.tag || "*"; var result = []; if(document.getElementsByClassName){ var nodes = document.getElementsByClassName(searchName); if (tag !=="*" ) { for (var i = 0; node === nodes[i++];) { if (node.tagName === tag.toUpperCase()) { console.log("dsjfksjlfsa"); result.push(node); } } } else{ result = nodes ; } return result; }else{ var els = node.getElementsByTagName(tag); var elslen = els.length; var partern = new RegExp("(^|\\s)"+searchName + "(\\s|$)"); var i,j; for( i=0,j=0;i<elslen;i++){ if (partern.test(els[i].className)){//检测正则表达式 result[j] = els[i]; j++; } } } }
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星