我用这个很多年了:function findFirstChildByClass(element, className) { var foundElement = null, found; function recurse(element, className, found) { for (var i = 0; i < element.childNodes.length && !found; i++) { var el = element.childNodes[i]; var classes = el.className != undefined? el.className.split(" ") : []; for (var j = 0, jl = classes.length; j < jl; j++) { if (classes[j] == className) { found = true; foundElement = element.childNodes[i]; break; } } if(found) break; recurse(element.childNodes[i], className, found); } } recurse(element, className, false); return foundElement;}但突然,这一行抛出了一个错误:var classes = el.className != undefined? el.className.split(" ") : [];未捕获的类型错误:el.className.split 不是函数我现在看不出出了什么问题。
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
这与 svg 复杂类名的使用有关。在重构一切之前,我很快解决了替换错误行的问题。
if (el.className != undefined && typeof(el.className) === 'string') {
classes = el.className.split(" ")
} else {
classes = []
}
svg 元素上的 className 属性是对象类型 SVGAnimatedString,因此没有 split 方法。
添加回答
举报
0/150
提交
取消