我有一個treeview和一個texbox,允許用戶搜索treeview中的節點。如何給javascript中的treeview節點着色
我已經寫了JS函數來確定樹狀結構中是否存在節點。
我想要的是爲用戶搜索的節點着色。我怎樣才能做到這一點??
我有一個treeview和一個texbox,允許用戶搜索treeview中的節點。如何給javascript中的treeview節點着色
我已經寫了JS函數來確定樹狀結構中是否存在節點。
我想要的是爲用戶搜索的節點着色。我怎樣才能做到這一點??
使用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");
每次執行此操作時,請不要忘記將所有節點重置爲「中性」類名,以便刪除不再適用於後續搜索的舊選擇。 – Robusto 2010-05-18 12:45:39
我剛剛添加,因爲你評論。 :) – sohtimsso1970 2010-05-18 12:48:30
很難說沒有一些代碼,但是這個怎麼樣?
document.getElementById("foundnodeid").style.color="#abcdef";
即使我寧願更改類不是直接的顏色,但是這取決於你:
document.getElementById("foundnodeid").style.class="classwithdifferentcolor";
問題應refrased說出一個合適的環境。什麼樣的treeview?你需要改變顏色的哪一部分? 我刪除了C#標記,因爲它沒有明確的問題連接。 – 2010-05-18 12:49:07