对getElementsByTagName("*")获取全部元素的总结
2014-08-29 22:56
417 查看
var all=document.getElementsByTagName("*") //获取整个页面的标签元素
alert(all.length); //返回all长度,即标签元素个数
好了,下面就是各大浏览器各显独特的时候了:
你会发现IE返回的元素个数总比firefox和chrome浏览器多,且多出的个数还不是固定的,原因如下:
1)IE中(本人用IE8测试),会把网页头部的<!DOCTYPE>也认为是一个标签,且为数组中第一个标签,用.tagName查看其标签名居然为“!”,没错就是一感叹号!而其他两个浏览器则不会识别为一个标签。当把开头的<!DOCTYPE>删掉时,则IE也不识别。所以一旦存在<!DOCTYPE>,IE返回的总标签个数+1。
2)当网页文档中没有定义<title>标签时,IE依然会自动默认的添加该标签,可以用for循环遍历所有标签.tagName来查看各标签,你会在IE中诡异的看到有<title>标签,即使你网
页文档中没有。故再+1。
3)当一些成对出现的标签如<div></div>等,当去掉后半部分的</div>时,依然识别为一个标签,当去掉前半部分,只保留后半部分的</div>时,firefox和chrome则不再识别为一个标签,而IE依然认为后半部分</div>依然是一个标签元素。当然了,本身就不成对出现的标记如<br/>,<hr/><img/>等标签除外。 故IE中标签多出的个数就由文档中的不合格的后半部分标签个数为准。故+n。
综上就是IE中获取所有标签的个数总比其他浏览器多的原因。肯定还有不足,IE还有其余很多版本,因本人电脑硬件原因,在此就不一一安装测试。网广大同行批评,指正,补充,谢。
alert(all.length); //返回all长度,即标签元素个数
好了,下面就是各大浏览器各显独特的时候了:
你会发现IE返回的元素个数总比firefox和chrome浏览器多,且多出的个数还不是固定的,原因如下:
1)IE中(本人用IE8测试),会把网页头部的<!DOCTYPE>也认为是一个标签,且为数组中第一个标签,用.tagName查看其标签名居然为“!”,没错就是一感叹号!而其他两个浏览器则不会识别为一个标签。当把开头的<!DOCTYPE>删掉时,则IE也不识别。所以一旦存在<!DOCTYPE>,IE返回的总标签个数+1。
2)当网页文档中没有定义<title>标签时,IE依然会自动默认的添加该标签,可以用for循环遍历所有标签.tagName来查看各标签,你会在IE中诡异的看到有<title>标签,即使你网
页文档中没有。故再+1。
3)当一些成对出现的标签如<div></div>等,当去掉后半部分的</div>时,依然识别为一个标签,当去掉前半部分,只保留后半部分的</div>时,firefox和chrome则不再识别为一个标签,而IE依然认为后半部分</div>依然是一个标签元素。当然了,本身就不成对出现的标记如<br/>,<hr/><img/>等标签除外。 故IE中标签多出的个数就由文档中的不合格的后半部分标签个数为准。故+n。
综上就是IE中获取所有标签的个数总比其他浏览器多的原因。肯定还有不足,IE还有其余很多版本,因本人电脑硬件原因,在此就不一一安装测试。网广大同行批评,指正,补充,谢。
相关文章推荐
- 对getElementsByTagName("*")获取全部元素的总结
- getElementsByTagName是根据标签名获取元素
- IE中getElementsByTagName无法获取元素BUG
- 使用document.getElementsByName("name")获取元素的value值
- 跟随标准与Webkit源码探究DOM -- 获取元素之getElementsByTagName
- JS基础——getElementsByTagName获取元素
- JS中获取元素使用getElementByID()、getElementsByName()、getElementsByTagName()的用法和区别
- IE9 使用document.getElementsByName("abc") 不能获取到名称相同SPAN元素
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- getElementByID getElementsByName getElementsByTagName的区别和总结
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- 通过getElementsByTagName("div") 得到div的数量
- getElementByID getElementsByName getElementsByTagName的区别和总结
- 给自己提个醒:关于document.getElementsByName无法获取非表单元素
- 取web中的标记document.body.getElementsByTagName("span");
- getElementById;getElementsByName;getElementsByTagName获取对象的区别
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- 用getElementsByTagName遍历HTML DOM元素
- etElementByID getElementsByName getElementsByTagName的区别和总结 +js+Mxl+xmlhttp