【问题标题】:How to access jsTree node attributes after checkbox was clicked?单击复选框后如何访问jsTree节点属性?
【发布时间】:2013-02-13 00:32:16
【问题描述】:

我想知道节点的复选框被点击后如何访问jsTree节点属性。

单击复选框后,我使用$("#jstree").bind('check_node.jstree', function(e, data) { 触发我的代码。

现在我想访问节点的属性。但我不知道如何使用 data 对象,所以我可以获取属性。因此,假设在我的 jsfiddle 中,我想显示属性的值以及文本“单击并检查”

您能否解释一下如何以及为什么?我迷失了如何引用 jsTree/jQuery 对象。

jsfiddle working sample

==== 更新

在jsTree数据定义中可以定义节点属性。我想以编程方式检查属性,然后根据属性触发不同的代码。在我的例子中是 "log" 属性。

data = [
    {
        "data": "Basics",
        "attr":{"log":"shared"},
    },
    {
        "data": "All",
        "attr":{"log":"bdrs"},
    }
]

【问题讨论】:

  • 节点属性是什么意思,也许你可以用console.log检查数据对象
  • @juanpastas:我添加了一个更新......所以让我们在我的 jsfiddle 中说,我想显示属性的值以及节点的“单击并检查”文本,其复选框被单击。

标签: javascript jquery jstree


【解决方案1】:

你可以这样做:

$("#jstree").bind('check_node.jstree', function(e, data) {
    $("#list").append('<BR>clicked and ' + node_is_check(data));
    var node = data.rslt.obj;
    console.log( node.attr("log") ); //shows bdrs when All is checked
});

更新小提琴:jsFiddle Demo

你的意思是这样的

【讨论】:

  • 这正是我所需要的。你能解释一下吗?什么是 rstl.obj。为什么我必须使用它?我什么时候使用它?谢谢。
  • @Radek data.rslt.obj是被点击的jquery扩展节点,所以你可以使用这个节点获取所需的数据,请阅读文档以获取更多详细信息..
  • 我在文档中找到的唯一引用是“rslt”:/* 函数传递给事件的任何数据 */,`。你能告诉我为什么我需要使用 rstl.obj 吗?不只是rstl?
  • @Radek as the whole "data.rslt.obj" 为您提供了被点击/检查的节点(根据文档),使用它可以让您获得与之关联的所需数据。 . 我希望我很清楚
  • @Radek data.rslt 将为您提供对象(在其中检查的实际节点退出),而 data.rslt.obj 将为您提供检查的实际节点对象,因此使用 data.rslt .obj 允许从选中的节点获取所需的数据..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2011-02-10
相关资源
最近更新 更多