Javascript 陷入搜索js 函数myFunction(){ var输入、滤波器、ul、li、a、i、TXT值; 输入=document.getElementById(“myInput”); filter=input.value.toUpperCase(); ul=document.getElementById(“myUL”); ul.style.display=“块”; li=ul.getElementsByTagName(“li”); 对于(i=0;i-1){ 李[i].style.display=“”; }否则{ li[i].style.display=“无”; } } }

Javascript 陷入搜索js 函数myFunction(){ var输入、滤波器、ul、li、a、i、TXT值; 输入=document.getElementById(“myInput”); filter=input.value.toUpperCase(); ul=document.getElementById(“myUL”); ul.style.display=“块”; li=ul.getElementsByTagName(“li”); 对于(i=0;i-1){ 李[i].style.display=“”; }否则{ li[i].style.display=“无”; } } },javascript,html,search,Javascript,Html,Search,这是我用于搜索的代码,但它没有按我需要的方式工作 例如: 我想搜索的元素是“净水器-纽约” 即使我在搜索中键入Water New,我也希望它能过滤它,但它不能。基本上,搜索需要查找包含给定单词的所有元素,而不考虑这些单词的顺序。您的示例运行良好,在输入更改时添加一个eventListener,您应该能够筛选出您的记录 还调整了搜索条件,以便根据插入的字母呈现元素 例如: 1.) 输入:wtr;输出:净水器-纽约,世界贸易组织 (二) 输入:wtrp; 输出:净水器-纽约 函数myFunctio

这是我用于搜索的代码,但它没有按我需要的方式工作

例如:

我想搜索的元素是“净水器-纽约”


即使我在搜索中键入Water New,我也希望它能过滤它,但它不能。基本上,搜索需要查找包含给定单词的所有元素,而不考虑这些单词的顺序。

您的示例运行良好,在输入更改时添加一个eventListener,您应该能够筛选出您的记录

还调整了搜索条件,以便根据插入的字母呈现元素

例如:

1.) 输入:wtr;输出:净水器-纽约,世界贸易组织

(二) 输入:wtrp; 输出:净水器-纽约

函数myFunction(e){
var输入、滤波器、ul、li、a、i、TXT值;
输入=document.getElementById(“myInput”);
filter=e.target.value.toUpperCase()
ul=document.getElementById(“myUL”);
ul.style.display=“块”;
li=ul.getElementsByTagName(“li”);
对于(i=0;itxtValue.toUpperCase().split(“”).some(y=>y==x))){
李[i].style.display=“”;
}否则{
li[i].style.display=“无”;
}
}
}
document.getElementById('search')。addEventListener('input',(e)=>{
我的职能(e)
})

对不起,过去几天我一直很忙。我的代码运行得很好,只是没有按我的预期运行。到目前为止,它的工作方式是:输入:wr,列表中有净水器-纽约,它应该会显示出来。所以,基本上我需要它来独立地寻找角色。即使字符的顺序不完全匹配,也应过滤字符(包括空格)。示例:输入:wtr
  • 净水器-纽约。只有在输入完全匹配的情况下,Filter才会将其过滤掉。@Mezmerizer9正常工作还是需要其他类型的搜索?显然我需要其他类型的搜索hah@Mezmerizer9现在试试,如果你键入“wtr”,你会得到2条记录,如果你键入wtrp,只有1条记录,依此类推,它会匹配所有键入的charsYes,就是这样。非常感谢你。
    function myFunction() {
        var input, filter, ul, li, a, i, txtValue;
        input = document.getElementById("myInput");
        filter = input.value.toUpperCase();
        ul = document.getElementById("myUL");
        ul.style.display = "block";
        li = ul.getElementsByTagName("li");
        for (i = 0; i < li.length; i++) {
            a = li[i].getElementsByTagName("a")[0];
            txtValue = a.textContent || a.innerText;
            if (txtValue.toUpperCase().indexOf(filter) > -1) {
                li[i].style.display = "";
            } else {
                li[i].style.display = "none";
            }
        }
    }