我在列表中有“一些文本”,如果匹配,那么我将在.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中有一个错误,如果不匹配的语法不正确。
答案 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覆盖。