jsTree показать/скрыть узлы

Я работаю с jstree и хотел бы знать, как скрыть/показать узлы, если это возможно. Я дал элементам списка идентификатор «кошки», чтобы выбрать их с помощью jquery, но это не работает.

Вот код.

HTML:

<div class="resultsContent">

    <div class="demo" id="demo_1">

    <ul>

    {% for ipc in ipcs %}

        {% ifequal ipc.back_list 1 %}   

            </ul></li>

        {% endifequal %}    

        {% ifequal ipc.kind "c" %}  

        <li id="{{ ipc.symbol }} cat" rel="node-type">
                {% else %}
                    <li id="{{ ipc.symbol }} cat" rel="node-type">
            {% endifequal %}
    {% endfor %}
    </ul>

</div>

</div>

сценарий:

jQuery('#demo_1')

    .jstree({

        plugins : [ "themes", "html_data", "checkbox"  ], 

        themes : { theme: "default", dots : false, icons : false },         

        core : { "initially_open" : [ "{{ top_symbol }}" ] }, 

    })

$("#cat").slice(5, 10).hide(); //Hide some nodes 

person mxm    schedule 14.09.2010    source источник


Ответы (1)


В вашем коде кажется, что вы создаете элементы li с идентификатором, состоящим из значения символа IPC плюс черный пробел, плюс слово «кошка».

<li id="{{ ipc.symbol }} cat" rel="node-type">

Но ваш селектор пытается получить элемент, идентификатор которого точно равен «кошке».

$("#cat").slice(5, 10).hide(); //Hide some nodes 

Возможно, вы могли бы использовать другой селектор jQuery. Например, атрибут содержит селектор:

$("li[id*='cat']").slice(5, 10).hide(); //Hide nodes with the string 'cat'

Или Атрибут содержит селектор слов, более подходящий в этом случае (потому что вы ищем целое слово):

$("li[id~='cat']").slice(5, 10).hide(); //Hide nodes containing the word 'cat'
person Tomas Narros    schedule 14.09.2010
comment
Спасибо, Томас, я попробовал это, но кажется, что размещение кота в идентификаторе конфликтует с jstree. Мне придется выбрать элементы li другим способом. - person mxm; 14.09.2010
comment
В этом случае попробуйте использовать дочерний селектор (api.jquery.com/child-selector). ): выберите все элементы LI в DIV demo_1: $('#demo_1 › li') - person Tomas Narros; 14.09.2010
comment
Я разместил связанный с этим вопрос, можете ли вы его увидеть? - person Moeez; 29.06.2020