Javascript content.match不是一个函数

Javascript content.match不是一个函数,javascript,jquery,Javascript,Jquery,我试图使用jquery创建一个自动完成系统,但是我从firefox开发者控制台得到了以下错误 content.match is not a function 我在这里错过了什么请任何人帮我好吗 以下是我的Jquery代码: $(文档).ready(函数(){ var定时器=null; var tagstart=/@/gi; var tagword=/@(\w+)/gi; $(“body”).delegate(“.addpost”,“keyup”,function(){ 清除超时(计时器);

我试图使用jquery创建一个自动完成系统,但是我从firefox开发者控制台得到了以下错误

content.match is not a function
我在这里错过了什么请任何人帮我好吗

以下是我的Jquery代码:

$(文档).ready(函数(){
var定时器=null;
var tagstart=/@/gi;
var tagword=/@(\w+)/gi;
$(“body”).delegate(“.addpost”,“keyup”,function(){
清除超时(计时器);
计时器=设置超时(函数(){
var contents=$(this.text();
var goWord=content.match(tagstart);
var goname=content.match(口号);
var ID=$(this.attr(“ID”);
如果(goWord.length>0){
var appendAfterHere=$(“.tag_”+ID).after(“”);
如果(goname.length>0){
}
}
}, 500);
});
});

这里的简单打字使用
内容
而不是
内容

var contents = $(this).text(); 
$(文档).ready(函数(){
var定时器=null;
var tagstart=/@/gi;
var tagword=/@(\w+)/gi;
$(“body”).delegate(“.addpost”,“keyup”,函数(e){
var值=e.目标值;
清除超时(计时器);
计时器=设置超时(函数(){
var内容=价值;
console.log('data::',contents);
var goWord=contents.match(tagstart);
var goname=contents.match(标记词);
var ID=$(this.attr(“ID”);
如果(goWord.length>0){
var appendAfterHere=$(“.tag_”+ID).after(“”);
如果(goname.length>0){
}
}
}, 500);
});
});


当我自己找到答案时,你回答了。但是还有另一个错误
TypeError:goWord为null
请注意,输入错误有一个很接近的原因。@HereticMonkey谢谢你提醒我。但显然我真正的问题是另一个。
var contents=$(this.text()每次都是空的。如果你有时间可以帮我查一下吗?@Azzo这里的“this”是指setTimeout回调函数,所以我们需要将“this”变量缓存在setTimeout函数外面。请注意,如果没有找到匹配项,str.match将返回null,因此还需要进行null检查。这是因为在传递给
setTimeout
的函数中使用了
This
。看见