为了账号安全,请及时绑定邮箱和手机立即绑定

将多个列表合并在一起并为搜索栏提供建议

将多个列表合并在一起并为搜索栏提供建议

桃花长相依 2023-07-14 10:42:43
我想将多个列表合并在一起,然后将它们作为输入字段的建议。我有一个针对一个列表的解决方案,但我无法让它与多个列表一起使用。我获取一个节点列表并将其转换为 HTMLUList 元素数组。我想我需要一个大的 HTMLUlist ?!感谢您的帮助,我希望您理解我的问题。 let filter = this.value.toUpperCase();  ul = document.getElementById("myUL");  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";    }  }  // This works for one list "myUL"  //-------------------------------------------------  //This does not work     let filter = this.value.toUpperCase();  ul = document.querySelectorAll (" #myUL , #myUL2 , #myUL3, #myUL4 , #myUL5 , #myUL6 ");  var inputList = Array.prototype.slice.call(ul);  li = inputList.getElementsByTagName('li'); 
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

虽然你的方法对我来说似乎不太有效,但你可以通过循环 ul 元素来实现:


let filter = this.value.toUpperCase();

let uls = document.querySelectorAll('#myUL, #myUL2 ,#myUL3, #myUL4, #myUL5, #myUL6');

uls.forEach(ul => {

   let li = ul.getElementsByTagName('li'); 

   // continue as above

})


查看完整回答
反对 回复 2023-07-14
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信