des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Js — как реализовать клик по дереву?

имею такое дерево
<ul id="yw2" class="filetree treeview">
<li id="1" class="open collapsable lastCollapsable">
<div class="hitarea open-hitarea collapsable-hitarea lastCollapsable-hitarea"></div>
<ul>
<li id="2" class="open collapsable">
<li id="6" class="open expandable">
<div class="hitarea open-hitarea expandable-hitarea"></div>
<a class="" href="/proizvodstvo/site/page?view=frameset&frame=6">ЛАЦ</a>
<ul style="display: none;">
</li>
<li id="45" class="open collapsable">
<li id="13" class="open collapsable lastCollapsable">
</ul>
</li>

вот в указывается класс class="open collapsable" либо open expandable.
как мне узнать открыта ветка или нет?

UPD
<script>
                console.log(document.getElementById('yw2'));
                var div = document.getElementById('yw2')
                var elems = div.getElementsByTagName('*') 

	for(var i=0; i<elems.length; i++) {
            console.log(elems[i].id, elems[i].classList)
        }
                </script>

получаю 1 DOMTokenList["open"]
при клике на этом
ocnAJDM.png
  • Вопрос задан
  • 187 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
des1roer
@des1roer Автор вопроса
ученье - свет, а неученье - приятный полумрак
в общем
var div = document.getElementById('yw2')
                var elems = div.getElementsByTagName('*')

сбил меня с толку. по факту обращался не к тому элементу
если так
var div = document.getElementById('yw2')
       var elems = div.getElementsByTagName('*') 
var elem = [];
	for(var i=0; i<elems.length; i++) {
        id = elems[i].id;  
        if (id)
        elem[id] = document.getElementById(id);
        }

то все хорошо
console.log(elem[13]);
        console.log(document.getElementById('13').classList.contains('open')); 
        elem[13].classList.toggle('open'); 
        console.log(document.getElementById('13').classList.contains('closed'));


<li id="13" class="closed">
false
true
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы