对getElementsByTagName("*")获取全部元素的总结
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还有其余很多版本,因本人电脑硬件原因,在此就不一一安装测试。网广大同行批评,指正,补充,谢。
对getElementsByTagName("*")获取全部元素的总结的更多相关文章
- 用 getElementsByTagName() 来获取,父元素指定的子元素
1. html 结构 <ul> <li>知否知否,应是等你好久11</li> <li>知否知否,应是等你好久11</li> <li&g ...
- Js之Dom学习-三种获取页面元素的方式、事件、innerText和innerHTML的异同
一.三种获取页面元素的方式: getElementById:通过id来获取 <body> <input type="text" value="请输入一个 ...
- javascript获取类元素
代码测试是ie5+: 原生javascript中筛选出含有指定类的元素: 思想:在指定范围里把所有的元素筛选出来,然后把里面的每个元素都遍历找出它们含有的所有类,然后逐个元素遍历它们各自的类,如果指定 ...
- JS1 js获取dom元素方法
js获取dom元素方法 1.通过ID选取元素(getElementById) 1)使用方法:document.getElementById("domId") 其 ...
- 用javaScript获取页面元素值
用JavaScript获取页面元素常见的三种方法: getElementById() ...
- 获取子元素节点(children,childNodes)
在js中获取元素节点有DOM对应的方法如getElementsByTagName()等等..对于获取子元素还有另外一种获取方法ChildNodes 不过ChidNodes在高级浏览器除(IE6-8)里 ...
- JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法
$(function(){ //遍历获取的input元素对象数组,绑定click事件 var len = $("input[type='file']").length; ; i & ...
- JavaScript笔记03——文档对象模型(Document Object Model,简称DOM):获取HTML元素、操作HTML元素
Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强.[1] DOM实际上是以面向对象方式描述的文档模型.DOM定 ...
- JavaScript获取页面元素的常用方法
1.通过标签获取元素,返回一个数组 var li = document.getElementsByTagName('li');//标签获取元素 li[0].innerHTML;// 查看获取元素的内容 ...
随机推荐
- [Z]The Boost C++ Libraries
看起来是个学习boost非常不错的材料,应该是boost的官方教程之类: http://theboostcpplibraries.com/
- Android Studio 简单功能介绍
Android Studio 建立系统工具包你用来生成,测试,运行您的应用程序和软件包.构建系统是独立于Android的工作室,所以你可以调用它的Android的工作室或从命令行.在你写你的应用程序 ...
- 使用go的ssh包快速打造一个本地命令行ssh客户端
热身运动
- [0x00 用Python讲解数据结构与算法] 概览
自从工作后就没什么时间更新博客了,最近抽空学了点Python,觉得Python真的是很强大呀.想来在大学中没有学好数据结构和算法,自己的意志力一直不够坚定,这次想好好看一本书,认真把基本的数据结构和算 ...
- win7左ctrl和左alt键互换
主要参考这篇文章: http://xyztony1985.blog.163.com/blog/static/3611782011752420104/ 感谢原博主 Windows Registry Ed ...
- JS基础回顾,小练习(判断数组,以及函数)
追梦子博客版权所有. // 判断arr是否为一个数组,返回一个bool值 方法1: function isArray(arr) { var str = arr.__proto__.constructo ...
- CSS选择器、优先级与匹配原理
为了分析Bootstrap源码,所以的先把CSS选择器相关的东东给巩固好 废话就不多说了 CSS 2.1 selectors, Part 1 计算指定选择器的优先级:重新认识CSS的权重 标签的权值为 ...
- mongodb 监控分析命令
1. bin/mongostate 2.开启慢查询用于调试 正式要关闭 可以在客户端调用db.setProfilingLevel(级别) 命令来实时配置.可以通过db.getProfilingLeve ...
- 介绍WEB站点结构
在这节里,我们将抛开Umbraco来看看已创建的站点.在我们介绍Umbraco之前,需要了解站点是如何工作的,如何使用使用浏览器工具. 我们看到在标签顶端的内容叫做页面标题.每个页面的标题都会改变表示 ...
- 介绍cms
在这篇文章中,我们先来定义下什么是CMS(Content Management System)系统,在网站中它是如何帮你来变更内容的. 最后我将展示如何登录Umbraco系统. 简单来说CMS是一个系 ...