你的位置:首页 > Java教程

[Java教程]javascript如何统计页面中标签的数量


javascript如何统计页面中标签的数量:
本章节介绍一下如何统计页面中标签的数量,当然标签是可以重复的,虽然不常用,不过寄希望能够给大家带来或多或少的帮助。
代码如下:

<!DOCTYPE html><html><head><meta charset=" utf-8"><meta name="author" content="http://www.softwhy.com/" /><title>蚂蚁部落</title><script type="text/javascript">var elementName="";function countTotalElement(node){ ///Attribute nodeType值为2,表示节点属性 ///Comment  nodeType值为8,表示注释文本 ///Document  nodeType值为9,表示Document ///DocumentFragment  nodeType值为11,表示Document片段 ///Element      nodeType值为1,表示元素节点 ///Text        nodeType值为3,表示文本节点 var total=0; //1代表节点的类型为Element if(node.nodeType==1){  total++;  elementName=elementName+node.tagName+"\r\n"; } var childrens=node.childNodes; for(var i=0;i<childrens.length;i++){  total+=countTotalElement(childrens[i]); }  return total;}window.onload=function(){ var bt=document.getElementById("bt"); bt.onclick=function(){  alert('标签总数'+countTotalElement(document)+'\r\n 全部标签如下:\r\n'+elementName); }}</script></head><body><a href="javascript:void(0);return false" id="bt">点击测试</a></body></html>

以上代码实现了我们的要求,点击按钮可以弹出框,能够统计页面中标签的数量。代码比较简单,就是通过判断节点类型,如果是元素节点就计算在内,并且结合for循环通过递归的方式实现数量统计。
一.代码注释:
1.var elementName="",声明一个变量,用来存储标签的名称,并且通过字符串连接将结果串联起来。
2.function countTotalElement(node){},此函数是功能的核心,参数是个节点对象,在本代码中是document节点对象。
3.var total=0,声明一个变量并初始化为0,用来存储标签的数量。
4.if(node.nodeType==1),判断是否是元素节点。
5.total++,加1运算。
6.elementName=elementName+node.tagName+"\r\n",标签名称连接起来,后面的回车换行。
7.var childrens=node.childNodes,获取node节点的所有一级子节点。
8.for(var i=0;i<childrens.length;i++),遍历每一个一级子节点。
9.total+=countTotalElement(childrens);,这里运用了递归的方式实现深度遍历,也就是首先判断一个节点,然后再去遍历判断它的子节点,依次类推。
10.return total,返回数量。
二.相关阅读:
1.nodeType属性可以参阅javascript的DOM元素节点操作简单介绍一章节。 
2.tagName属性可以参阅javascript如何获取元素的tagName标签名一章节。 
3.childNodes属性可以参阅js的childNodes用法简单介绍一章节。 

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11388

更多内容可以参阅:http://www.softwhy.com/javascript/