【ife】任务二十三:JavaScript和树(二)

来源:互联网 发布:sql 字符串长度 oracle 编辑:程序博客网 时间:2024/05/02 23:52
var buttons = document.getElementsByTagName('button');var city = document.getElementById('city');var nodes = [];var interval = null;var value;buttons[0].onclick = function() {value = document.getElementsByTagName('input')[0].value;clear();deepTraversal(city);display();}buttons[1].onclick = function() {value = document.getElementsByTagName('input')[0].value;clear();wideTraversal(city);display(); }function clear() {nodes = [];clearInterval(interval);var divs = document.getElementsByTagName('div');for (var i = 0; i < divs.length; i++) divs[i].style.background = "white";}function deepTraversal(node) {if (node != null) {          nodes.push(node);          var children = node.children;          for (var i = 0; i < children.length; i++)              deepTraversal(children[i]);      }  }function wideTraversal(selectNode) {if (selectNode != null) {var queue = [];queue.unshift(selectNode);while (queue.length != 0) {var item = queue.shift();nodes.push(item);var children = item.children;for (var i = 0; i < children.length; i++)queue.push(children[i]);}}}function display() {var i = 0;var flag = 0;nodes[i].style.background = 'red'; if (nodes[i].firstChild.nodeValue == value) {nodes[i].style.background = 'blue';flag = 1;}interval = setInterval(function() {i++;if (i < nodes.length) {if (nodes[i - 1].firstChild.nodeValue != value)nodes[i - 1].style.background = 'white';nodes[i].style.background = 'red';if (nodes[i].firstChild.nodeValue == value) {nodes[i].style.background = 'blue';flag = 1;}} else {nodes[nodes.length - 1].style.background = 'white';if (flag == 0)alert("Not found!");clearInterval(interval);return;}}, 1000);}
1 0
原创粉丝点击