如果文本与字符串匹配,并且文本与字符串不匹配

时间:2019-05-09 18:54:05

标签: javascript jquery

我在列表中有“一些文本”,如果匹配,那么我将在.input-1下拉列表中显示选择选项,但是我无法使用的是与字符串不匹配的相反。在这种情况下,我想隐藏选择选项。

代码的第一部分有效,但是如果失败,则第二部分

jQuery(document).ready( function() {
$('.input-1 option').each(function() {
var ourOption = $(this).text().toLowerCase(); // convert text to Lowercase
var str = "Some Text";
var res = str.toLowerCase();
if (ourOption.match(res)) {
$(this).css('display', 'block');
}
else if (!ourOption.match(res)) {
$(this).css('display', 'none');
}   
})
});

当前结果是,无论匹配的文本如何,所有选项都被隐藏,因此我猜我的else中有一个错误,如果不匹配的语法不正确。

1 个答案:

答案 0 :(得分:1)

.match()用于查找字符串中的匹配项,而不是比较并返回true / false。您需要在这里比较==

jQuery(document).ready( function() {
 $('.input-1 option').each(function() {
  var ourOption = $(this).text().toLowerCase(); // convert text to Lowercase
  var str = "Some Text";
  var res = str.toLowerCase();
  if (ourOption.indexOf(res) > -1) {
    $(this).css('display', 'block');
  }
  else {
    $(this).css('display', 'none');
  }   
 })
});

事实上,您甚至不需要一个else-如果在这里,仅此而已就足够了...因为只有两种可能性,true和false都被if / else覆盖。