Trying to get a list of checked items on change_state in jstree

£可爱£侵袭症+ 提交于 2019-12-01 08:07:55

问题


Using jsTree (pre1.0_fix_1), I would like to obtain a list of id's for all the checked items (or better, a JSON object with id AND text of each checked item). I will then make an ajax call with this. Additionally, this should happen any time there is a state change of something getting checked or unchecked.

This is what I currently have:

$(function(){

  n = $('#colors').jstree({
    "plugins": ["themes", "html_data", "checkbox"]
  }).bind("change_state.jstree", function(e, data){
  console.log($('#colors').jstree('get_selected').attr('id'));
  });
});

This is just returning 'colors', from the container'sid: <div id="colors">. I fished around the data object, but didn't find it in there (perhaps I missed it?)


回答1:


In order to get the checked nodes' JSON you should be using get_checked and not get_selected. Try this:

    var checked = $("#colors").jstree("get_checked",null,true);
    var checked_json = [];
    $(checked).each(function (i,node) {
        var id = $(node).attr("id");
        var text = $(node).attr("text");
        var node_json = { 
            "id" : id, 
            "text" : text 
        };
        checked_json.push(node_json);
    });

After that checked_json will contain an array of of id+text objects which you could send to the server.



来源:https://stackoverflow.com/questions/9544820/trying-to-get-a-list-of-checked-items-on-change-state-in-jstree

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!