2010-05-18 2 views
3

У меня есть treeview и texbox, который позволяет пользователю искать узлы внутри treeview.Как покрасить узел treeview в javascript

Я уже написал функцию JS, которая определяет, существует ли узел в древовидной структуре.
Я хочу, чтобы цвет узла, который пользователь искал. как я могу это сделать??

+0

Вопрос должен быть refrased сформулировать надлежащий контекст. Какое дерево? Какую часть узла вам нужно изменить? Я удаляю тег C#, поскольку он не имеет четкой связи с вопросом. –

ответ

2

Используйте CSS и измените имя класса в Javascript. Поэтому скажите, что ваши узлы являются 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"); 
+0

Не забудьте сбрасывать все узлы в «нейтральное» имя класса каждый раз, когда вы это делаете, поэтому вы избавляетесь от старых выборок, которые больше не применяются при последующих поисках. – Robusto

+0

Я просто добавлял это, когда вы прокомментировали. :) – sohtimsso1970

0

Трудно сказать без какого-либо кода, но как насчет этого?

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

Хотя я предпочел бы изменить класс, чем цвет непосредственно, но это до вас:

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

Смежные вопросы