1 //定义 walk_the_DOM 函数,它从某个给定的节点开始,按HTML源码中的顺序访问该树的每个节点
2 //它会调用一个函数,并依次传递每个节点给它。walk_the_DOM 调用自身去处理每一个子节点。
3 var walk_the_DOM =
function walk(node, func) {
4 func(node);
5 node =
node.firstChild;
6 while (node) {
7 walk(node, func);
8 node =
node.nextSibling;
9 }
10 };
11
12 //定义 getElementsByAttribute 函数。它取得一个属性名称字符串和一个可选的匹配值。
13 //它调用 walk_the_DOM ,传递一个用来查找节点属性名的函数。
14 //匹配的节点会累积到一个结果数组中。
15 var getElementsByAttribute =
function(att, value) {
16 var results =
[];
17
18 walk_the_DOM(document.body,
function(node) {
19 var actual = node.nodeType === 1 &&
node.getAttribute(att);
20 if (
typeof actual === 'string' && (actual === value ||
typeof value !== 'string'
)) {
21 results.push(node);
22 }
23 });
24 return results;
25 };
简单的递归方法
转载于:https://www.cnblogs.com/qzsonline/archive/2012/07/09/2583758.html
相关资源:JAVA上百实例源码以及开源项目