How to get data-id in jstree JSON data





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I am trying to get data-id from a tree form generated with a JsTree (checkbox form) but it's not working. I am using $.each(), because you can check more checkboxes. This is how my script looks like:



$(document).ready(function() {
$(".js-save-button").on('click', function(){
let boxes = check_checkboxes();
alert(JSON.stringify(boxes));

});

function check_checkboxes(){
let boxes_id = ;
let boxes = $(".js-categories-checkboxtree").jstree("get_checked", true);
$.each(boxes, function() {
//let id = jQuery(this); //getting info
//let id = (data.node.id); //not working
let id = $(this).data('id'); //not working
boxes_id.push(id);
});
return boxes_id;
}
});


I can simply get this (but it returns not what I need I can just verify that I have the right element in this):



let id = $(this).attr('id');


But I can't get this (it returns null)



let id = $(this).data('id');


I tried to just alert everything I know about the element:



let id = jQuery(this)


and I can see there is a plenty of data attributes but I can't get any of them... Any ideas please?










share|improve this question





























    0















    I am trying to get data-id from a tree form generated with a JsTree (checkbox form) but it's not working. I am using $.each(), because you can check more checkboxes. This is how my script looks like:



    $(document).ready(function() {
    $(".js-save-button").on('click', function(){
    let boxes = check_checkboxes();
    alert(JSON.stringify(boxes));

    });

    function check_checkboxes(){
    let boxes_id = ;
    let boxes = $(".js-categories-checkboxtree").jstree("get_checked", true);
    $.each(boxes, function() {
    //let id = jQuery(this); //getting info
    //let id = (data.node.id); //not working
    let id = $(this).data('id'); //not working
    boxes_id.push(id);
    });
    return boxes_id;
    }
    });


    I can simply get this (but it returns not what I need I can just verify that I have the right element in this):



    let id = $(this).attr('id');


    But I can't get this (it returns null)



    let id = $(this).data('id');


    I tried to just alert everything I know about the element:



    let id = jQuery(this)


    and I can see there is a plenty of data attributes but I can't get any of them... Any ideas please?










    share|improve this question

























      0












      0








      0








      I am trying to get data-id from a tree form generated with a JsTree (checkbox form) but it's not working. I am using $.each(), because you can check more checkboxes. This is how my script looks like:



      $(document).ready(function() {
      $(".js-save-button").on('click', function(){
      let boxes = check_checkboxes();
      alert(JSON.stringify(boxes));

      });

      function check_checkboxes(){
      let boxes_id = ;
      let boxes = $(".js-categories-checkboxtree").jstree("get_checked", true);
      $.each(boxes, function() {
      //let id = jQuery(this); //getting info
      //let id = (data.node.id); //not working
      let id = $(this).data('id'); //not working
      boxes_id.push(id);
      });
      return boxes_id;
      }
      });


      I can simply get this (but it returns not what I need I can just verify that I have the right element in this):



      let id = $(this).attr('id');


      But I can't get this (it returns null)



      let id = $(this).data('id');


      I tried to just alert everything I know about the element:



      let id = jQuery(this)


      and I can see there is a plenty of data attributes but I can't get any of them... Any ideas please?










      share|improve this question














      I am trying to get data-id from a tree form generated with a JsTree (checkbox form) but it's not working. I am using $.each(), because you can check more checkboxes. This is how my script looks like:



      $(document).ready(function() {
      $(".js-save-button").on('click', function(){
      let boxes = check_checkboxes();
      alert(JSON.stringify(boxes));

      });

      function check_checkboxes(){
      let boxes_id = ;
      let boxes = $(".js-categories-checkboxtree").jstree("get_checked", true);
      $.each(boxes, function() {
      //let id = jQuery(this); //getting info
      //let id = (data.node.id); //not working
      let id = $(this).data('id'); //not working
      boxes_id.push(id);
      });
      return boxes_id;
      }
      });


      I can simply get this (but it returns not what I need I can just verify that I have the right element in this):



      let id = $(this).attr('id');


      But I can't get this (it returns null)



      let id = $(this).data('id');


      I tried to just alert everything I know about the element:



      let id = jQuery(this)


      and I can see there is a plenty of data attributes but I can't get any of them... Any ideas please?







      jquery jstree






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 16 '18 at 13:56









      Jan KočvaraJan Kočvara

      4610




      4610
























          1 Answer
          1






          active

          oldest

          votes


















          0














          So I have finally found a sollution! It's actually simple! You have to access these data with .map()!



          Like this:



          $(".js-save-product").on('click', function(){
          let boxes = check_checkboxes();
          alert(JSON.stringify(boxes));

          });

          function check_checkboxes(){
          let boxes_id = ;
          let boxes = $('.js-categories-checkboxtree').jstree('get_checked', true)
          $.each(boxes, function() {
          let id = $(this).map(function() { return this.data.id }).get().join();
          boxes_id.push(id);
          });
          return boxes_id;
          }





          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53339271%2fhow-to-get-data-id-in-jstree-json-data%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            So I have finally found a sollution! It's actually simple! You have to access these data with .map()!



            Like this:



            $(".js-save-product").on('click', function(){
            let boxes = check_checkboxes();
            alert(JSON.stringify(boxes));

            });

            function check_checkboxes(){
            let boxes_id = ;
            let boxes = $('.js-categories-checkboxtree').jstree('get_checked', true)
            $.each(boxes, function() {
            let id = $(this).map(function() { return this.data.id }).get().join();
            boxes_id.push(id);
            });
            return boxes_id;
            }





            share|improve this answer




























              0














              So I have finally found a sollution! It's actually simple! You have to access these data with .map()!



              Like this:



              $(".js-save-product").on('click', function(){
              let boxes = check_checkboxes();
              alert(JSON.stringify(boxes));

              });

              function check_checkboxes(){
              let boxes_id = ;
              let boxes = $('.js-categories-checkboxtree').jstree('get_checked', true)
              $.each(boxes, function() {
              let id = $(this).map(function() { return this.data.id }).get().join();
              boxes_id.push(id);
              });
              return boxes_id;
              }





              share|improve this answer


























                0












                0








                0







                So I have finally found a sollution! It's actually simple! You have to access these data with .map()!



                Like this:



                $(".js-save-product").on('click', function(){
                let boxes = check_checkboxes();
                alert(JSON.stringify(boxes));

                });

                function check_checkboxes(){
                let boxes_id = ;
                let boxes = $('.js-categories-checkboxtree').jstree('get_checked', true)
                $.each(boxes, function() {
                let id = $(this).map(function() { return this.data.id }).get().join();
                boxes_id.push(id);
                });
                return boxes_id;
                }





                share|improve this answer













                So I have finally found a sollution! It's actually simple! You have to access these data with .map()!



                Like this:



                $(".js-save-product").on('click', function(){
                let boxes = check_checkboxes();
                alert(JSON.stringify(boxes));

                });

                function check_checkboxes(){
                let boxes_id = ;
                let boxes = $('.js-categories-checkboxtree').jstree('get_checked', true)
                $.each(boxes, function() {
                let id = $(this).map(function() { return this.data.id }).get().join();
                boxes_id.push(id);
                });
                return boxes_id;
                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 16 '18 at 14:54









                Jan KočvaraJan Kočvara

                4610




                4610
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53339271%2fhow-to-get-data-id-in-jstree-json-data%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Bressuire

                    Vorschmack

                    Quarantine