0

我只是想测试我的对象的模式和输出,但控制台给了我一个错误,说 match 不是一个函数,而w3School说它是一个 javascript 函数

var templateRegex = '/\${([\S\s]*?)\}/g';



    var getTextNodesIn = function(el) {
            return $(el).find("*").addBack().contents().filter(function() {
                return this.nodeType == 3 ;
            });
        };

        var textNodes = getTextNodesIn('#'+currentId);

        console.log(textNodes.length);
        for(var i=0; i<textNodes.length; i++) {
            console.log(textNodes[i]);
            if(textNodes[i].match(templateRegex)) {
                console.log(textNodes[i]);
            }
        }

请帮忙?

4

1 回答 1

5

看起来您正在尝试将 RegExp 与节点匹配;match 是一个字符串方法,而不是 HTMLElement 方法。

请注意,jQuery 的contents()方法返回文本节点,而不是字符串。您可能想使用text()orhtml()代替(只是一目了然地检查 jQuery 的 API ref,我不是 jQuery 专家)。

于 2013-04-05T16:11:50.020 回答