我想将多个列表合并在一起,然后将它们作为输入字段的建议。我有一个针对一个列表的解决方案,但我无法让它与多个列表一起使用。我获取一个节点列表并将其转换为 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
})
添加回答
举报
0/150
提交
取消