Javascript 匹配不是函数错误
我只是想测试我的对象的模式和输出,如果它有,但控制台给我一个错误,说匹配不是一个函数,而说它是一个javascript函数Javascript 匹配不是函数错误,javascript,jquery,Javascript,Jquery,我只是想测试我的对象的模式和输出,如果它有,但控制台给我一个错误,说匹配不是一个函数,而说它是一个javascript函数 var templateRegex = '/\${([\S\s]*?)\}/g'; var getTextNodesIn = function(el) { return $(el).find("*").addBack().contents().filter(function() { return this
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]);
}
}
var templateRegex='/\${([\S\S]*?)\}/g';
var getTextNodesIn=函数(el){
返回$(el).find(“*”).addBack().contents().filter(函数(){
返回this.nodeType==3;
});
};
var textNodes=getTextNodesIn(“#”+currentId);
console.log(textNodes.length);
对于(var i=0;i,看起来您正在尝试将RegExp与节点匹配;match是一个字符串方法,而不是HTMLElement方法
请注意,jQuery的contents()
方法返回文本节点,而不是字符串。您可能希望使用text()
或html()
(只需一眼查看jQuery的API引用,我不是jQuery专家).看起来您正在尝试将RegExp与节点匹配;match是一个字符串方法,而不是HTMLElement方法
请注意,jQuery的contents()
方法返回文本节点,而不是字符串。您可能希望使用text()
或html()
(只需一眼查看jQuery的API引用,我不是jQuery专家).你的console.log打印什么?这需要一些东西!->var templateRegex=newregexp(“/\${([\s\s]*?)\}/”,“g”)
是textNodes
一个字符串数组吗?getTextNodesIn
做什么?看起来像是试图将RegExp与节点匹配;match
是一个字符串方法,而不是HTMLElement方法。正如格雷厄姆在下面所说的,您可以使用textNode.eq(i).text().match(templateRegex)
你的控制台.log打印什么?这需要一些东西!->var templateRegex=new RegExp(“/\${([\s\s]*?)\}/”,“g”)
是textNodes
字符串数组吗?getTextNodesIn
做什么?看起来你在试图将一个RegExp与一个节点匹配;match
是一个字符串方法,而不是HTMLElement方法。正如格雷厄姆在下面所说的,你可以使用textNode.eq(i).text().match(templateRegex)