Get Checked Element in JQuery JStree

jquery, jstree

Solution

Your function to get checked nodes is right, the problem is your JSON that is not well-formed; to set property on the tree, so they can't be get from the methods.

You must use the property `attr` or no data will be set on the node, from the docs:

The attr object will appear as attributes on the resulting li node.

Code:

$("#tree").jstree({
    "json_data": {
        "data": [{
            "data": "pe_opensourcescanning",
                "attr": {
                "id": 77,
                    "pId": -1
            },
                "children": [{
                "data": "tags",
                    "attr": {
                    "id": 30,
                        "pid": 0
                }
            }, {
                "data": {
                    "title": "branches"
                },
                    "attr": {
                    "id": 29,
                        "pid": 0
                }
            }]
        }]
    },
        "plugins": ["themes", "json_data", "checkbox", "ui"]
})

$("#getChecked").click(function () {
    $("#tree").jstree("get_checked", null, true).each(function (i, e) {
        console.log($(this).attr("id"))
    });
});

Demo: http://jsfiddle.net/IrvinDominin/RYhgD/

Docs: http://www.jstree.com/documentation/json_data

Problem

I have created one Jquery jstree with JSON object. My tree is working fine Creating jstree ``` $("#tree").jstree({ "json_data": { "data": [{ "data": "pe_opensourcescanning", "id": 0, "pId": -1, "children": [{ "data": "tags", "id": 30, "pid": 0 }, { "data": "branches", "id": 29, "pid": 0 }, { "data": "trunk", "id": 1, "pid": 0, "children": [{ "data": "import-export", "id": 28, "pid": 1 }, { "data": "custom_development", "id": 12, "pid": 1 }, { "data": "Connectors", "id": 7, "pid": 1 }, { "data": "support", "id": 6, "pid": 1 }, { "data": "Installation-Configuration", "id": 5, "pid": 1 }, { "data": "backup", "id": 2, "pid": 1 }] }] }] }, "plugins": ["themes", "json_data", "checkbox", "ui"] }).bind("select_node.jstree", function (e, data) { alert(data.rslt.obj.data("id")); }); ``` Now i want the "id" and "data" values for each checked nodes. I have tried to write something but unfortunately that doesn't work. Kindly help me how to achieve this goal. Getting checked nodes ``` $("#tree").jstree("get_checked",null,true).each(function () { alert(this.data); alert(this.id); }); ```

Original source

Related problems