首页 > 解决方案 > TypeError:c.match 不是函数

问题描述

当我尝试此代码时,我收到TypeError: c.match is not a function in the browser search console。我在哪里犯错?

(function() {
    function addIcon(el, entity) {
        var html = el.innerHTML;
        el.innerHTML = '<span style="font-family: \'B3-Line-Icons\'">' + entity + '</span>' + html;
    }
    var icons = {
        'b3icon-scale': '&#xe900;',
        'b3icon-file-text': '&#xe901;',
        'b3icon-skyscraper': '&#xe902;',
        'b3icon-girl': '&#xea67;',
        '0': 0
        },
        els = document.getElementsByTagName('*'),
        i, c, el;
    for (i = 0; ; i += 1) {
        el = els[i];
        if(!el) {
            break;
        }
        c = el.className;
        c = c.match(/b3icon-[^\s'"]+/);
        if (c && icons[c[0]]) {
            addIcon(el, icons[c[0]]);
        }
    }
}());

标签: javascriptjquery

解决方案


el.className 可能未定义(或不​​是字符串)。


推荐阅读