如何获取子节点的信息。

时间:2014-05-04 17:01:29

标签: javascript jquery jstree

我在demo中使用jstree。我想获取child的信息。当用户点击父节点时,我想得到孩子的id。

这是我的预期输出

  • 1)" a"元素没有孩子,所以如果用户点击它,则数组为空;
  • 2)" b"元素有两个孩子" b-a"," b-b" .so如果用户点击它,则表示这两个元素的数组ID;
  • 3)" b-a"元素没有孩子,所以如果用户点击它,则数组为空;
  • 4)" b-b"元素有两个孩子" b-b-a"," b-b-b" .so如果用户点击它,这两个元素的数组id; 小提琴 http://jsfiddle.net/fuu94/8/

    $(document).ready(function(){

    $('#tree').on("select_node.jstree", function (e, data) {
        alert("node_id: " + data.node.id);
        $('#tree').jstree(true).toggle_node(data.node);
    
        var selEl = [];
        $(this).siblings().each(function (idx, el) {
            selEl.push($(el.node).attr("id"));
        });
        console.log(selEl);
    });
    $('#tree').jstree({
        "core": {
            "check_callback": true
        },
        "plugins": ["dnd"]
    });
    $('#home').click(function () {
        alert('home');
    
    });
    $('#next').click(function () {
        alert('next');
    
    });
    $('#pre').click(function () {
        alert('pre');
    
    });
    

    });

1 个答案:

答案 0 :(得分:0)

更新了答案

获取儿童身份:

$(data.node.children).each(function(index, item){
    console.log(item);  // <-- logs the item id to console
});

按下主页时获取根节点:

$('#home').click(function () {
    var rootChildren = $('#tree').find('ul > li');
    $(rootChildren).each(function(index, item){
        console.log(item.id); // <-- logs root node id to console
    });
    //alert('home');
});

Updated fiddle

原始答案

使用

data.node.children

离。

$('#tree').on("select_node.jstree", function (e, data) {
    var nodeChildren = data.node.children;  // <- get children
    .
    .
    .
});

更新了您的小提示,提醒孩子而不是身份证 - updated fiddle