eg.getElementsByClassName = function(className, element) {
if(document.getElementsByClassName){
return (element || document).getElementsByClassName(className)
}
var children = (element || document).getElementsByTagName('*');..............................①
var elements = new Array();
for (var i = 0; i < children.length; i++) {
var child = children[i];
var classNames = child.className.split(' ');
for (var j = 0; j < classNames.length; j++) {
if (classNames[j] == className) {
elements.push(child);
break;
}
}
}
return elements;
};
下面的代码为什么可以解决getElementsByClassName兼容性的问题,可以解释一下代码吗?从①开始完全看不懂.
答案:2 悬赏:30 手机版
解决时间 2021-03-06 10:39
- 提问者网友:wodetian
- 2021-03-05 23:59
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-03-06 00:43
Element对象请自行学习,
如果能获取到节点对象就获取节点对象否则就获取document对象,
然后.getElementsByTagName('*')查找到所有元素!
for (var i = 0; i < children.length; i++) {
循环所有元素
var child = children[i];
var classNames = child.className.split(' ');
获取到所有的classname并按空格切成数组
for (var j = 0; j < classNames.length; j++) {
在循环所有classname
if (classNames[j] == className) {
elements.push(child);
break;
}
如果classname=传入的参数classname,那么就是找到了。
如果能获取到节点对象就获取节点对象否则就获取document对象,
然后.getElementsByTagName('*')查找到所有元素!
for (var i = 0; i < children.length; i++) {
循环所有元素
var child = children[i];
var classNames = child.className.split(' ');
获取到所有的classname并按空格切成数组
for (var j = 0; j < classNames.length; j++) {
在循环所有classname
if (classNames[j] == className) {
elements.push(child);
break;
}
如果classname=传入的参数classname,那么就是找到了。
全部回答
- 1楼网友:琴狂剑也妄
- 2021-03-06 01:55
可以私聊我~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯