我只是想测试我的对象的模式和输出(如果有),但是控制台给我一个错误,说 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]);
}
}
Run Code Online (Sandbox Code Playgroud)
请帮忙?
看起来您正在尝试将 RegExp 与节点匹配;match 是一个字符串方法,而不是一个 HTMLElement 方法。
请注意,jQuery 的contents()方法返回文本节点,而不是字符串。您可能想使用text()或html()代替(只需一目了然地检查 jQuery 的 API 引用,我不是 jQuery 专家)。