IE8下关于querySelectorAll()的问题
querySelectorAll定义与用法
querySelectorAll() 方法返回文档中匹配指定 CSS 选择器的所有元素,返回 NodeList 对象。
NodeList 对象表示节点的集合。可以通过索引访问,索引值从 0 开始。
提示: 你可以使用 NodeList 对象的 length 属性来获取匹配选择器的元素属性,然后你可以遍历所有元素,从而获取你想要的信息。
基础测试代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>脚本之家</title>
</head>
<body>
<h2 class="example">使用 class="example" 的标题</h2>
<p class="example">使用 class="example" 的段落</p>
<p>点击按钮为 class="example" (索引为 0) 的第一个元素设置背景颜色。</p>
<button onclick="myFunction()">点我</button>
<p><strong>注意:</strong>Internet Explorer 8 及更早版本不支持 querySelectorAll() 方法。</p>
<script>
function myFunction() {
var x = document.querySelectorAll(".example");
x[0].style.backgroundColor = "red";
}
</script>
</body>
</html>浏览器支持
表格中的数字表示支持该方法的第一个浏览器的版本号。
表格中的数字表示支持该方法的第一个浏览器的版本号。
| 方法 | Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|---|
| querySelectorAll() | 4.0 | 8.0 | 3.5 | 3.2 | 10.0 |
注意: Internet Explorer 8 支持 CSS2 选择器。 IE9 及更高版本的浏览器已经支持 CSS3 选择器。
当用querySelector()或querySelectorAll()查找类似name="2nd_btn"的元素时,FF,chrome和IE8都会报错。
FF,chrome报的错是一样的,如下所示:
Error: uncaught exception: [Exception... "An invalid or illegal string was specified" code: "12" nsresult: "0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)" location: ".../test/qsa.html Line: 18"]
IE8的报错提示:行: 18 错误: 参数无效。
一寻思,name的值是以数字开头的,把数字去掉或修改后,就能取到了。
这就告诉我们,一般可自定义标签的属性值时,属性值不能以数字开头,也不能包含$,^等不常用的字符。
在HTML页面开始一定要记得声明<!DOCTYPE>。
测试代码:
<!DOCTYPE>
<html>
<head></head>
<body>
<div id="foo">
<a name="warns" href="">This is a sample warning</a>
<a id="3err" href="">This is a sample error</a>
</div>
<div id="bar">
<a name="warns" href="">This is another sample warning</a>
<a name="1err" href="">This is another sample error</a>
</div>
<script>
var a = document.querySelectorAll("[name=warns]")
alert(a.length)//输出:2
var b = document.querySelector("[id=3err]")
alert(b.tagName)//报错
var c = document.querySelectorAll("[name=1err]")
alert(c.length)//报错
</script>
</body>
</html>到此这篇关于IE8下关于querySelectorAll()的问题的文章就介绍到这了,更多相关IE8 querySelectorAll内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决layer.open弹出框不能获取input框的值为空的问题
今天小编就为大家分享一篇解决layer.open弹出框不能获取input框的值为空的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-09-09
javascript实现table单元格点击展开隐藏效果(实例代码)
这篇文章主要介绍了javascript实现table单元格点击展开隐藏效果的实例代码讲解,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下2017-04-04
如何解决attachEvent函数时,this指向被绑定的元素的问题?
如何解决attachEvent函数时,this指向被绑定的元素的问题?...2007-04-04


最新评论