使用querySelectAll给元素设置样式

该笔记应用场景: 全局定义的header 和footer 样式浮在弹窗的黑色阴影上,使用querySelectAll改变元素的display/zIndex
MDN 链接:
https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelectorAll

showRecommend(val){
			let headerDom = document.querySelectorAll('.fix-header'),
				footerDom = document.querySelectorAll('.fix-footer');
			debugger;
			if (val) {
				if (footerDom && footerDom.length) {
					for (const n of headerDom) {
						n.style.zIndex = 0
					}
					for (const n of footerDom) {
						n.style.display = 'none'
					}
				}
			}else{
				if (footerDom && footerDom.length) {
					for (const n of headerDom) {
						n.style.zIndex = 9
					}
					for (const n of footerDom) {
						n.style.display = 'flex'
					}
				}
			}
		}
JavaScript中,我们可以使用`document.querySelectorAll`方法配合正则表达式的模式匹配来选取HTML文档中的奇数行。这里的关键在于理解HTML元素是如何排列的:在HTML表格中,每一对`<tr>`标签代表一行,其中 `<td>` 或者 `<th>` 标签表示单元格内的内容。通常来说,如果我们将表格的第一行视为索引为0,则第二行的索引为1,依此类推。所以,奇数行实际上就是那些索引为奇数的行。 下面是一个示例代码片段展示了如何获取HTML表格中的奇数行: ```javascript // 获取所有的表格行 let rows = document.querySelectorAll("table tbody tr"); // 遍历获取奇数行 rows.forEach((row, index) => { if (index % 2 === 1) { // 索引为奇数的情况 console.log(row); // 打印出奇数行 } }); ``` 在这段代码中,`querySelectorAll` 方法用于查找所有匹配给定选择器的元素。在这种情况下,它会查找名为“table”并且包含“tbody”的所有`<tr>`元素。接下来,我们使用`forEach`循环遍历每个找到的行。在循环体内部,我们检查当前行的索引是否为奇数(即`index % 2 === 1`),如果是的话,就打印该行的内容。 ### 相关问题: 1. **如何在选择奇数行的同时也获取其对应的列内容?** - 如果您需要同时获取奇数行及其对应列的内容,可以在上面的代码基础上稍作修改,增加获取列的逻辑: ```javascript let rows = document.querySelectorAll("table tbody tr"); for(let i = 1; i < rows.length; i += 2) { let oddRow = rows[i]; // 假设每个<tr>中只有一个<td>用于展示主要内容 let cellContent = oddRow.querySelector('td').textContent; console.log(cellContent); } ``` 2. **为何这种方法只能识别表格的直接子级行,而无法识别嵌套的表格?** - 如果您的页面中有嵌套的表格结构,那么上述代码只能作用于最外层的`<table>`元素下的直接子级`<tr>`元素。要访问嵌套表格的行,你需要使用递归函数或者其他能够深度遍历DOM的技术。 3. **如何优化性能以处理大量数据?** - 对于大型数据集,频繁的DOM操作可能会导致性能问题。考虑使用虚拟滚动或分页技术来优化加载大量数据时的性能。此外,避免使用原生JavaScript循环遍历DOM,而是采用更高效的方法,如流式计算或异步操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值