querySelectorAll
是一个用于在文档中选择符合特定 CSS 选择器的所有元素的强大方法。它返回一个 NodeList
对象,该对象包含了所有匹配的元素。如果你需要根据多个文本值来筛选这些元素,你可以结合使用 JavaScript 的数组方法和 textContent
或 innerText
属性来实现。
getElementById
或 getElementsByClassName
,querySelectorAll
提供了更广泛的选择能力。querySelectorAll
返回的是一个静态的 NodeList,这意味着它不会随着 DOM 的变化而更新。假设我们有一个列表,我们想要找出所有包含特定文本值的列表项:
<ul id="myList">
<li>Apple</li>
<li>Banana</li>
<li>Cherry</li>
<li>Date</li>
<li>Apple Pie</li>
</ul>
我们想要找出所有包含 "Apple" 的 <li>
元素:
// 获取所有的列表项
const listItems = document.querySelectorAll('#myList li');
// 定义我们想要匹配的文本值
const searchText = 'Apple';
// 使用数组方法 filter 来筛选符合条件的元素
const filteredItems = Array.from(listItems).filter(item => item.textContent.includes(searchText));
// 输出结果
console.log(filteredItems);
问题:为什么 querySelectorAll
返回的 NodeList 不包含我期望的元素?
原因:
解决方法:
document.addEventListener('DOMContentLoaded', function() {
// 你的代码放在这里
});
通过这种方式,你可以确保在尝试选择元素时,DOM 已经完全加载并准备好被查询。
领取专属 10元无门槛券
手把手带您无忧上云