我正在尝试从由JsTree(复选框形式)生成的树形式中获取data-id
,但是它不起作用。我正在使用$.each()
,因为您可以选中更多复选框。这是我的脚本的样子:
$(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;
}
});
我可以简单地得到它(但是它不会返回我需要的东西,我只能验证我在this
中是否有正确的元素):
let id = $(this).attr('id');
但是我无法得到它(它返回null)
let id = $(this).data('id');
我试图提醒我有关该元素的所有知识:
let id = jQuery(this)
我可以看到有很多数据属性,但是我什么也听不到...有什么想法吗?
答案 0 :(得分:0)
所以我终于找到了解决方法!其实很简单!您必须使用data
访问这些.map()
!
赞:
$(".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;
}