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);
}
【ife】任务二十三:JavaScript和树(二)
最新推荐文章于 2017-10-18 14:23:34 发布