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

时间:2017-06-02 22:59:36

标签: javascript jquery match

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

$("select[title='Projects List'] option").filter(function()
{
  return $(this).text() === prjName 
}).prop('selected', true);

因此,此代码会尝试选择 prjList 中的第一个选项,该选项与输入 prjName 的文本相匹配。没问题,按预期工作。

我有第二个SELECT字段,我们称之为 prjSimilar 。我可以动态地向 prjSimilar 添加选项。没有问题。我要做的是 - 除了完全匹配 - 找到类似于 prjName 的值的任何内容,然后将其添加为中的新选项 prjSimilar 即可。基本上是关键字搜索。例如,如果用户在文本框中键入“RED VOLKSWAGEN BEETLE”,我想在 prjList 中找到包含这三个单词之一的任何选项,每个单词添加一个 prjSimilar ,因为它找到了它。

到目前为止,我已尝试过.filter()和indexOf的变体,但我没有取得任何成功。

可以使用哪种Javascript / jQuery方法在列表中查找类似的项目?

1 个答案:

答案 0 :(得分:1)

  

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

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

$("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);