2010-09-14 242 views
2

我正在使用jstree,如果可能,我想知道如何隐藏/显示节点。我给列表项目一个“猫”ID来选择他们与jQuery,但这是行不通的。jsTree显示/隐藏节点

这是代码。

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 

回答

3

看来你的代码,你正在生成与由IPC符号值加上黑色空间组成的ID li元素,加上单词“猫”。

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

但是,你的选择是试图让一个元素的ID正是“猫”

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

也许你可以使用不同的jQuery选择。通过例子,Attribute Contains Selector

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

还是Attribute Contains Word Selector,在这种情况下更合适(因为你正在寻找一个全字):

$("li[id~='cat']").slice(5, 10).hide(); //Hide nodes containing the word 'cat' 
+0

感谢托马斯,我试过,但似乎把id中的“cat”与jstree冲突。我将不得不以其他方式选择li元素。 – mxm 2010-09-14 14:16:33

+0

在这种情况下,请尝试使用子选择器(http://api.jquery.com/child-selector/):选择“demo_1”DIV下的所有LI项目:$('#demo_1> li') – 2010-09-14 14:25:55

+0

它工作正常!,格拉西亚托马斯! – mxm 2010-09-14 14:57:55