Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Задать класс дочернему элементу (https://javascript.ru/forum/jquery/21220-zadat-klass-dochernemu-ehlementu.html)

DjDiablo 05.09.2011 17:59

если да, то делать надо примерно так. (Это скорее образец чем конкретное решение)
/** **************************************************
* Обработчик щелчка по папке
* Current - это ссылка на элемент по которому кликнул порльзователь
*************************************************** */

function folderClick(var current) {

         
        var  temp = "",

        //получаем имя папки по которой щёлкнули.
        name = current.parent.attr("name"), 

 // работаем с current //

        // все папки вложенные в элемент по которому щёлкнули, независимо от внутренней иерархии          
        currentSubFolders = current..find(".folder"),

        // все файлы вложенные в элемент по которому щёлкнули  включая те что находятся во вложенных папках         
        currentSubFile = current.find(".file"),



 // работаем с деревьями //

        //treeS ссылается на все деревья 
        treeS = $("#treeView1, #treeView2, #treeView3"),

        // выбираем все папки из всех деревьев, c именем как у current (добавь на сервере атрибут name к папкам)
        itemFolders = treeS.find(".folder[name = " + name + "]"),         


        // выбираем все подпапки из itemFolders   (добавь на сервере атрибут name к папкам)
        ItemAllSubFolders = itemFolders.find(".folder"),

        // выбираем все файлы из itemFolders включае те что находятся во вложенных подпапках
        ItemAllSubFilse = itemFolders.find(".file"),



// здесь химичешь над найденным материалом как хочешь применяй атрибуты или классы ко всем найденным 
//обьектам сразу, или перебирай в цикле для более сложных манипуляций. 

        // к примеру найти все папки, соответствующие именам папок, вложенных в current, можно так

         currentSubFolders.each( function(){
                 temp+= ".folder[name="+this.attr["name"]+"],";// формируем запрос в котором перечисляем все нужныеимена
         })
         
         // в SubFoldersBaseForCurrent помещаем ссылку на все папки в трёх tree, имена которых совпали с именами одной 
         // из имён вложенных в curent папок. 

         subFoldersBaseForCurrentFolders=treeS.find(temp);
};

Juli@ 05.09.2011 18:06

Спасибо большое, DjDiablo!
Сделала,как поняла.Работает!)
$(document).ready(function(){
	$('#content a').click(function(){//при  клике на эл-т a из дива content	
	$(this).addClass('current');//присваиваем ему класс 
	$('a').not(this).removeClass('current'); //при след. клике удаляем класс

	var curName = $(this).attr("name");
	var t="a[name="+curName+"]";
  	var current = $('ul.filetree').find(t).addClass('current').show();//все элементы с таким же именем заносим в current
	current.parent().addClass("selected").end().addClass("selected").parents("ul, li").add( current.next() ).show();//открываем всех родителей эл-тов current
	$('a').not(t).removeClass('current');
//это для списка ol li
	var current1 = $('ol.filetree').find(t).addClass('current');				
	current1.parent().addClass("selected").end().addClass("selected").parents("ol, li").add( current1.next() ).show();
	$('a').not(t).removeClass('current');
	
	//смотрим детей у элементов current
	var childs = current.parent().parent().find("a").not(current);
	childs.addClass('current').parent().addClass("selected").end().addClass("selected").parents("ul, li").show();
	//а вот это для поиска элементов с такими же name как у childs 
	length = childs.length;
	for( i=0; i < length; i++){
	s ="a[name="+childs[i].name+"]";
	$('ol.filetree').find(s).addClass('current');
	$('ul.filetree').find(s).addClass('current').parent().addClass("selected").end().addClass("selected").parents("ul, li").show();

	}
							 
	});
	});

Juli@ 06.09.2011 11:32

DjDiablo,спасибо, что не остаетесь равнодушным!


Часовой пояс GMT +3, время: 22:54.