现在的位置: 首页 > 综合 > 正文

html页面中不能有两个相同id的元素吗?

2013年10月01日 ⁄ 综合 ⁄ 共 914字 ⁄ 字号 评论关闭

之前看书的时候,页面中如果有两个以上的样式相同最好使用class属性,如果使用id属性就会报错,一直就这么以为着,但是今天试了试不是那么回事?

<!DOCTYPE html>
<html>
<head>
<title>Function Example 10</title>
</head>
<body>
<div id="my">aaa</div>
<div id="my">bbb</div>
<script type="text/javascript">
	(function(){
		//alert(document.getElementById("my").innerHTML);//aaa
		//alert(document.all["my"].innerHTML);//undefined
		//alert(document.all("my",1).innerHTML);//bbb

		/*IE8/9及Firefox/Chrome/Safari/Opera 的最新版已经支持它们*/
		alert(document.querySelectorAll("#my")[1].innerHTML);//bbb
        })();
</script>
</body>
</html>

当使用dom方法时会取到和querySelector一样的结果,就是取到了第一id的text,当利用document.all[id]时无法识别,但是使用document.all.aaa(0)就会取到aaa,可以认为document.all.aaa(0)约等于document.all("aaa",0)---》这个是不是有些像函数的Curry了,呵呵

最要命的是querySelectorAll选择符,这个已经得到现代浏览器的实现,而这个浏览器的结果和document.all()又是惊人的相似,难道W3C认为在页面中使用两个id不是错事,这是“糟粕”吗?

玉伯说过“很多人精通js,但是不懂前端”,可能也是这个原因吧。有的时候不是你用的对与不对,只是用的好与不好罢了,以后还是会使用一个id,但是希望书本上说页面上只能是一个id的说法应该改一下,从页面规范上说岂不是更好,毕竟前端不仅仅是技术----前端大牛市这么说的

抱歉!评论已关闭.