我有一个jstree。 我想选择绑定到id为158的位置的对象的节点。这可行,但似乎很愚蠢。 这样做的惯用方法是什么?

var $tree = $('.jstree', myContext),
    node = $tree.find('li').filter(function() { 
        return ( $(this).data().location || {}).id === 158;
    });
$tree.jstree('select_node', n)

===============>>#1 票数:37

只是想在这里说话,因为没有一个答案对我有用。 最后DID的工作非常简单:

$('#someTree').jstree('select_node', 'someNodeId');

请注意,我没有将someNodeId初始化为jQuery对象。 它只是一个简单的字符串。

我在加载树之后立即执行此操作而未将其置于“准备好”绑定事件中,因为它似乎没有必要。

希望它可以节省一些令人沮丧的时间。

在加载后挂钩到树中:

.on('loaded.jstree', function() {
    // Do something here...
  });

===============>>#2 票数:20

基于jsTree组,您可以尝试

jQuery("#getStartedTree").jstree("select_node", "#test2"); 

如果数据看起来像

The JSON in the TextFile.txt - borrowed from your simple example
 [
     {
     "data" : "A node",
     "children" : [ "Child 1", "Child 2" ]
     },
     {
     "attr" : { "id" : "test1" },
         "data" : {
             "title" : "Long format demo",
             "attr" : { "id" : "test2", "href" : "#" }
         }
     }
 ] 

和jsTree设置

My tree container is <div id="getStartedTree">

My jsTree code
 $("#getStartedTree").jstree({
            "themes": {
                "theme": "default",
                "url": "../App_Css/Themes/Default/style.css",
                "dots": true,
                "icons": true
            },
            "json_data": {
                "ajax": {
                    "url": "../SiteMaps/TextFile.txt",
                    "dataType": "json",
                    "data": function(n) {
                        return { id: n.attr ? n.attr("id") : 0 };
                    }
                }
            },
            "plugins": ["themes", "json_data", "ui"]
        }); 

这就是你追求的吗?

===============>>#3 票数:3

我能够模拟jstree节点上的单击作为选择节点的替代方法。 以下代码是使用的:

$(treeIdHandle + " li[id=" + nodeId + "] a").click();

===============>>#4 票数:3

我做到了:

$('.jstree').jstree(true).select_node('element id');

这段代码:

jQuery.each(produto.categorias, function(i, categoria) {
    $('#lista-categorias').jstree(true).select_node(categoria.dadoCategoria.id);
});

===============>>#5 票数:2

我使用jstree 3.0.8。 不要使用'国家'

'plugins' : ['dnd','sort','types','contextmenu','wholerow','ui']

和服务器提供json,所选节点具有

"state":{"selected":true,"opened":true}

===============>>#6 票数:2

如果您使用HTML而不是JSON数据填充树并想知道如何设置node_idnode_id需要设置<li>元素的id属性!

<div class="tree-menu">
    <ul class="menu">
        <li id="node_1">
            Node 1 - Level 1
           <ul class="menu">
               <li id="node_3">
                   Node 3 - Level 2
               </li>
           </ul>
        </li>
        <li id="node_2">
            Node 2 - Level 1
        </li>
    </ul>
</div>

然后

$('.tree-menu')
    .jstree(true)
    .select_node("node_3");

将选择Node 3 - Level 2节点。

对于那些得到javascript错误的人 ,记得使用完整版的jQuery ,而不是瘦身版!

对于所有失败的选民 ,这里是证明它正在运作的演示: https//jsfiddle.net/davidliang2008/75v3fLbs/7/

在此输入图像描述

===============>>#7 票数:1

这个解决方案适合我

// after the tree is loaded
$(".jstree").on("loaded.jstree", function(){
    // don't use "#" for ID
    $('.jstree').jstree(true).select_node('ElementId');
});

甚至在php循环中(动态):

$(".jstree").on("loaded.jstree", function(){
    <?php foreach($tree as $node): ?>
        $('.jstree').jstree(true).select_node('<?=$node?>');
    <?php endforeach;?>
});

希望这对你有用。

  ask by George Mauer translate from so

未解决问题?本站智能推荐:

1回复

如何以编程方式选择jsTree中的隐藏节点?

我有一个带有复选框的jsTree。 树中的每个项目都代表一个审阅项目,其状态可能为“新”,“已开始”或“完成”。 状态被添加到项目的@class中。 这是从中创建jsTree的无序列表的一部分 我现在要设置所有具有类“ .done”的节点的复选框。 该代码应通过工具栏中的按钮
2回复

如何以编程方式在jsTree中选择节点并打开所有父节点

在多级jsTree中,如何选择特定节点(可能是叶节点)并展开其所有父节点? 例: 从这个JSFiddle( http://jsfiddle.net/mmeah/fyDE6/ )我想以编程方式选择Grand Child并打开所有父节点。 对于某些上下文,我试图确保用户返回树中的正确节点
1回复

如何以编程方式删除jstree中的节点

我在jstree中显示了xml文件。 我可以使用以下代码选择节点: 我尝试添加用于删除树节点的jstree演示代码,但是,我认为我不知道该怎么做。 有人可以指导我如何去做吗?
2回复

如何以编程方式折叠所有ng-js-tree节点

我使用ng-js-tree https://github.com/ezraroi/ngJsTree从json加载树并尝试使用两种方式(state.opened和close_all)折叠所有节点: 我的结果是: 但是他们两个都没有必要的结果。 谁知道,所有节点如何塌陷? 谢谢!
1回复

在页面启动时以编程方式选择jsTree中的节点的问题

我无法在页面启动时选择树形元素。 有一个带有设置的JSFiddle: https ://jsfiddle.net/voltel/aszn3h46/ 我的数据是JSON数组: 请在启动时帮助选择一个节点,并消除控制台中的一些可疑错误(请参阅JSFiddle)。 现在,我从St
1回复

使用ajax加载以编程方式扩展jstree中的节点

我有一个用jstree制作的树,当你展开节点时,它会部分加载并通过json_data插件加载。 这是代码的关键: 然后,我想扩展一些节点并选择叶节点,具体取决于访问该站点的用户。 我在循环中执行如下操作: 打开Parent节点工作正常,当显示树但firstChild节点未打开
2回复

以编程方式将子节点添加到jstree

我正在尝试编写一些动态地将节点添加到jstree的代码。 我已经按照http://www.jstree.com/documentation/crrm上的文档进行了操作,但无法得到一个简单的示例 - 正在添加节点child2,但它正被添加到节点的root中。 id'而不是'child1.id'指
2回复

使用jsTree以编程方式检查复选框节点

在使用jsTree构建的树中,我将<a>标记内的文本放在一个变量中。 我想检查那个节点。 我该怎么办? 我目前正在使用jQuery查找该节点,并更改其类。 但是,这不会通过使父节点在其类中不确定来修复父节点。 我尝试做$('.colors').jstree("check
1回复

JsTree以编程方式打开节点,数据源为json / ajax

我有一个jsTree ,使用以下代码启动: 数据源是json,通过ajax获取。 我有一个ID数组,在显示树时需要对其进行扩展。 例如: 我的列表是['0', '2','2.2', '2.2.1'] 。 我尝试了以下代码(在var grid = $('#group-tr
2回复

JsTree 3在加载时选择一个特定的节点

我正在使用当前版本的JavaScript库JsTree在Web应用程序中构建树型结构。 我想知道一旦树被加载后如何最好地选择树内的特定节点。