【发布时间】:2012-01-04 23:43:14
【问题描述】:
http://jsfiddle.net/nicktheandroid/QhL2M/ (在输入框中输入“再见”)
脚本的目的:每个li 都包含标签词。当用户在input 框中键入这些标记词之一时,它将隐藏所有不包含该标记词的li。可以在input 中输入多个单词,如果超过 1 个li 的标记词与input 中的任何单词匹配,则显示它们。所以它基本上是一个允许多个单词的过滤列表,并显示所有匹配的li,其中包含输入input 的任何单词。它只匹配整个单词,而不是部分单词,并且它应该只在匹配另一个完整单词时更新匹配列表(当多个单词时)。这就是目标。
我的问题是它错误地报告了这段代码中有匹配项:
if (matches == true) {
alert('matched true') //incorrectly reports
} else {
alert('matched false') //incorrectly reports
}
当这段代码正确报告时:
if (regex.test($(this).text()) === true) {
matches = true;
// alert('tis true') //correctly reports
} else {
matches = false;
// alert('tis false') //correctly reports
}
为什么报告不正确? (正确,如:我希望它报告的内容)
如果有人在 Javascript 方面足够好,可以看到我正在尝试做什么并知道如何帮助我,那就太好了。我正在努力解决这个问题,因为只有几件事需要改变。
【问题讨论】:
-
是否匹配全局变量?可以被覆盖。您是否尝试过将调试器语句放在正则表达式之后并检查匹配项的值?
标签: javascript jquery filter