公司建网站多少钱qcjxkd,lynda wordpress,建设银行网站,网站制作时文章目录 基于querySelector系列方法的CSS选择器深度解析一、方法概述二、基础选择器类型1. 类型选择器2. ID选择器3. 类选择器4. 属性选择器 三、组合选择器1. 后代组合器2. 子元素组合器3. 相邻兄弟组合器4. 通用兄弟组合器 四、伪类与伪元素1. 结构伪类2. 状态伪类3. 内容伪… 文章目录 基于querySelector系列方法的CSS选择器深度解析一、方法概述二、基础选择器类型1. 类型选择器2. ID选择器3. 类选择器4. 属性选择器 三、组合选择器1. 后代组合器2. 子元素组合器3. 相邻兄弟组合器4. 通用兄弟组合器 四、伪类与伪元素1. 结构伪类2. 状态伪类3. 内容伪类4. 伪元素 五、高级选择技巧1. 多重选择2. 转义特殊字符3. 动态选择器拼接 六、DOM操作实践示例1. 动态样式修改2. 批量元素操作3. 表单验证增强 七、性能注意事项八、浏览器支持情况 基于querySelector系列方法的CSS选择器深度解析
一、方法概述
const element document.querySelector(selector);
const elements document.querySelectorAll(selector);querySelector()返回匹配的第一个元素querySelectorAll()返回NodeList集合参数接受标准CSS选择器语法支持在任意Element节点上调用
二、基础选择器类型
1. 类型选择器
document.querySelector(div) // 匹配第一个div
document.querySelectorAll(p) // 所有p元素2. ID选择器
document.querySelector(#main-header) // ID需唯一
document.querySelector(div#content) // 带标签限制3. 类选择器
document.querySelectorAll(.active) // 所有含active类的元素
document.querySelector(button.primary) // 带标签限制4. 属性选择器
/* 完整匹配 */
[typesubmit]/* 包含匹配 */
[class*btn]/* 开头匹配 */
[href^https]/* 结尾匹配 */
[src$.png]/* 空格分隔包含 */
[lang~en]示例
document.querySelector(a[target_blank]) // 新窗口打开的链接
document.querySelectorAll(input[type^date]) // 日期相关输入框三、组合选择器
1. 后代组合器
document.querySelectorAll(nav ul li) // 所有nav下的ul中的li2. 子元素组合器
document.querySelector(div .content) // 直接子元素3. 相邻兄弟组合器
document.querySelector(h2 p) // 紧接在h2后的p元素4. 通用兄弟组合器
document.querySelectorAll(h3 ~ div) // h3之后的所有同级div四、伪类与伪元素
1. 结构伪类
document.querySelector(li:nth-child(2n1)) // 奇数行列表项
document.querySelectorAll(tr:nth-of-type(even)) // 偶数行表格行2. 状态伪类
document.querySelector(input:disabled) // 禁用输入框
document.querySelectorAll(a:visited) // 已访问链接3. 内容伪类
document.querySelector(p:empty) // 无内容的段落
document.querySelector(div:has( img)) // 包含直接子图片的div4. 伪元素
document.querySelector(p::first-line) // 无效选择伪元素不可匹配五、高级选择技巧
1. 多重选择
document.querySelectorAll(h1, h2, h3) // 所有标题元素2. 转义特殊字符
document.querySelector(#user\\.name) // 转义特殊字符3. 动态选择器拼接
const type success;
document.querySelector(.alert-${type}) // 模板字符串拼接六、DOM操作实践示例
1. 动态样式修改
document.querySelector(.chart-bar:nth-child(3)).style.backgroundColor #ff4757;2. 批量元素操作
document.querySelectorAll(.data-table tr:not(:first-child)).forEach(row {row.classList.add(highlight);});3. 表单验证增强
document.querySelectorAll(input:invalid).forEach(input {input.parentElement.classList.add(error);
});七、性能注意事项
选择器复杂度控制避免超过三层嵌套作用域优化优先在最近父元素查询缓存结果重复使用查询结果伪实时性NodeList不会自动更新特殊字符处理需正确转义CSS保留字符
八、浏览器支持情况
选择器类型支持版本:focus-withinChrome 64:has()Chrome 105:is()Chrome 88:where()Chrome 88
通过合理运用CSS选择器语法可以实现精确的DOM元素定位。建议优先使用简单选择器组合在复杂场景下可结合现代CSS伪类保持代码可维护性。