document自带的强大的选择器querySelector/querySelectorAll
2016-07-05 10:38
501 查看
我们用原生document的时候往往使用 document.getElementById 这种依靠class ,Id ,标签名 ,来获得想找到的节点。
这在逻辑结构比较简单的时候还是不错的选择,可是当结构层级复杂事,就不是那么好用了。
这个时候 我们就可以使用 document提供的另外一个强大的方法,querySelector/querySelectorAll ,这个方法支持css的样式写法
eg:
[/code]
后附一些刚才发现的css写法
(1)通配符:
id属性以code开始的所有input标签 :
id属性以code结束的所有input标签 :
id属性包含code的所有input标签 :
(2)根据索引选择
选择索引为偶数的所有tr标签:
选择索引为奇数的所有tr标签:
这在逻辑结构比较简单的时候还是不错的选择,可是当结构层级复杂事,就不是那么好用了。
这个时候 我们就可以使用 document提供的另外一个强大的方法,querySelector/querySelectorAll ,这个方法支持css的样式写法
eg:
document.querySelector(
"div.test>p:first-child"
);
document.querySelectorAll(
"div.test>p:first-child"
)[0];
[/code]
现在应该对于 querySelector、querySelectorAll 方法中的参数已经非常明白了,是的,它接收的参数和 CSS 选择器完全一致。querySelector 和 querySelectorAll 的区别在于 querySelector 用来获取一个元素,而querySelectorAll 可以获取多个元素。querySelector 将返回匹配到的第一个元素,如果没有匹配的元素则返回 Null。querySelectorAll 返回一个包含匹配到的元素的数组,如果没有匹配的元素则返回的数组为空。
再举个例子:我们使用 querySelectorAll 给所有 class 为 emphasis 的元素加粗显示。
var
emphasisText = document.querySelectorAll(
".emphasis"
);[/code]
for
(
var
i = 0 , j = emphasisText.length ; i < j ; i++ ){[/code]
emphasisText[i].style.fontWeight =
"bold"
;[/code]
}
[/code]后附一些刚才发现的css写法
(1)通配符:
id属性以code开始的所有input标签 :
document.querySelectorAll(
"input[id^='code']"
);
id属性以code结束的所有input标签 :
document.querySelectorAll(
"input[id$='code']"
);
id属性包含code的所有input标签 :
document.querySelectorAll(
"input[id*='code']"
);
(2)根据索引选择
选择索引为偶数的所有tr标签:
document.querySelectorAll(
"tbody tr:even"
);
选择索引为奇数的所有tr标签:
document.querySelectorAll(
"tbody tr:odd"
);
相关文章推荐
- leetcode:Longest Increasing Subsequence
- java.lang.Enum.valueOf()方法实例
- java语言基础入门——break,continue介绍
- reason: -[UIKBBlurredKeyView candidateList]: unrecognized selector sent to instance
- 获取request请求的ip地址
- B-JUI学习
- UILabel
- UIAlertController
- UIWindow加点击手势,上面的UITableView点击失效
- git 官方文档
- ios的手势操作之UIGestureRecognizer浅析
- 如何将复选框的value值传递给服务器
- notification 更新 采用 builder构建
- JS与HTML结合使用marquee标签实现无缝滚动效果代码
- Android如何判断MIUI和魅族手机
- UnicodeDecodeError: ‘XXX’ codec can’t decode bytes in position 2-5: illegal multibyte sequence
- iOS App开发中通过UIDevice类获取设备信息的方法
- UIView的setNeedsLayout,layoutIfNeeded,layoutSubviews 方法之间的关系解释
- 动态库、竖屏显示
- Error:Execution failed for task ':clean'. > Unable to delete directory :\build\intermediates