如何在javascript中为树视图节点着色

时间:2010-05-18 12:39:38

标签: javascript dom

我有一个树视图和一个texbox,允许用户搜索树视图中的节点。

我已经编写了JS函数,用于确定树视图中是否存在节点  我想要的是为用户搜索的节点着色。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

使用CSS并在Javascript中更改className。所以说你的节点是div。当您在Javascript中找到节点时,您会执行以下操作:

divFoundNode.className = "selected";

然后确保您的CSS具有选定的背景颜色集类。这看起来像这样:

.selected {background-color:red;} /* whatever your selected color is here */

如果您不想使用CSS,可以通过以下方式直接更改节点的颜色:

divFoundNode.style.backgroundColor = "red";

现在,您可能还需要关闭先前选择的其他节点的选择。要做到这一点,你有几个选择。您可以在设置所选节点之前运行所有节点并删除颜色(如上所述),或者您可以在Javascript中使用最后选择的div存储变量,然后只定位该节点。所以你会做这样的事情:

var divLastFoundNode; //global variable

function treeView_SelectNode(divFoundNode)
{
     divLastFoundNode.className = "";
     divFoundNode.className = "selected";
     divLastFoundNode = divFoundNode;
}

JQuery会让这更容易。您可以选择大量节点并一次对所有节点执行操作。例如:

$("div.node").removeClass("selected");
$(divFoundNode).addClass("selected");

答案 1 :(得分:0)

很难说没有一些代码,但是这个怎么样?

document.getElementById("foundnodeid").style.color="#abcdef";

即使我宁愿改变课程而不是直接改变颜色,但这取决于你:

document.getElementById("foundnodeid").style.class="classwithdifferentcolor";