Javascript 不允许用户输入相同的关键字,有时有效,有时无效;t、 jquery

Javascript 不允许用户输入相同的关键字,有时有效,有时无效;t、 jquery,javascript,jquery,Javascript,Jquery,我试图创建一个程序,不允许用户输入相同的关键字,我简化了我的代码如下,我做错了什么?有时它是有效的,但有时它会考虑每个关键字是相同的。 $(“.tag_link”)。单击(函数(事件){ event.preventDefault(); var href=$.trim($(this.attr('href'));//trim href值 var txtToMatch=$('.result_tag').text();//必须是一个类,因为id表示一个类。 var iMatch=txtToMatch.

我试图创建一个程序,不允许用户输入相同的关键字,我简化了我的代码如下,我做错了什么?有时它是有效的,但有时它会考虑每个关键字是相同的。
$(“.tag_link”)。单击(函数(事件){
event.preventDefault();
var href=$.trim($(this.attr('href'));//trim href值
var txtToMatch=$('.result_tag').text();//必须是一个类,因为id表示一个类。
var iMatch=txtToMatch.indexOf(href);
如果(iMatch!=-1){
//相同的关键字,不允许输入
//在这里采取行动
警报(“相同的关键字”);
}
});

问题是因为
text()
方法将只返回集合中第一个匹配项的文本,而不是所有匹配项都连接在一起。要解决这个问题,可以使用
map()
创建一个文本值数组,然后使用
indexOf
在该数组中查找特定项。试试这个:

$(“.tag_link”)。单击(函数(事件){
event.preventDefault();
var href=$.trim($(this.attr('href'));
var txtToMatch=$('.result_tag').map(函数(){
返回$(this.text();
}).get();
如果($.inArray(href,txtToMatch)!=-1){
//相同的关键字,不允许输入
//在这里采取行动
警报(“相同的关键字”);
}
});


<代码> > $('.ReultTyTAG)。文本()/代码>返回第一个元素的文本,而不是所有匹配元素的组合。我应该怎么做才能纠正它?原因是,您的代码TXTTOMATCH总是给我1个,所以它总是考虑每个单词的不同,为什么?我不确定。正如您在代码片段中看到的,它在您提供的HTML中运行良好。