好懵逼啊 听了几遍。。
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 星