使用Javascript/jQuery查找类似的选择选项

使用Javascript/jQuery查找类似的选择选项,javascript,jquery,match,Javascript,Jquery,Match,我目前正在使用.filter()方法将输入字段(prjName)的值与SELECT字段(prjList)中的选项相匹配。仅当输入的值与选项文本完全匹配时,此选项才起作用: $("select[title='Projects List'] option").filter(function() { return $(this).text() === prjName }).prop('selected', true); 因此,此代码尝试在prjList中选择与键入到prjName中的文本匹配的

我目前正在使用.filter()方法将输入字段(prjName)的值与
SELECT
字段(prjList)中的选项相匹配。仅当输入的值与选项文本完全匹配时,此选项才起作用:

$("select[title='Projects List'] option").filter(function()
{
  return $(this).text() === prjName 
}).prop('selected', true);
因此,此代码尝试在prjList中选择与键入到prjName中的文本匹配的第一个选项。没有问题,工作正常

我在旁边还有一个选择字段,我们称它为prjSimilar。我可以向prjSimilar动态添加选项。没问题。我想做的是——除了精确匹配之外——找到任何类似于prjName值的内容,然后将其作为新选项添加到prjSimilar中。基本上是一个关键字搜索。例如,如果用户在文本框中键入“红色大众甲壳虫”,我想在prjList中找到任何包含这三个单词中的一个的选项,将每个单词添加到prjSimilar

到目前为止,我已经尝试了.filter()和indexOf的变体,但没有成功

可以使用什么Javascript/jQuery方法在列表中查找类似项?

我想在prjList中找到任何包含这三个单词之一的选项

尝试将名称拆分为单词并相互比较:

$(“选择[title='Projects List']选项”).filter(函数()
{  
var words=$(this.text().split(“”);
var prjWords=prjName.split(“”);
for(var i=0;i
您可以使用
.split()
方法获取所有键入单词的数组。然后可以在第一个列表和这个数组之间进行检查。
$("select[title='Projects List'] option").filter(function()
{  
   var words = $(this).text().split('');
   var prjWords = prjName.split('');

   for ( var i = 0; i < words.length; i++ ) {
     for ( var j = 0; j < prjWords.length; j++ )
       if ( words[i] == words[j] ) {
         return true;
       }
     }
   }
   return false;
}).prop('selected', true);