为了账号安全,请及时绑定邮箱和手机立即绑定

js按类获取第一个元素时突然出错

js按类获取第一个元素时突然出错

缥缈止盈 2023-09-21 17:07:30
我用这个很多年了: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 方法。


查看完整回答
反对 回复 2023-09-21
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信