xmSelect 多选树形控件获取所有选中节点(包括子节点和父节点)
var xm_one = xmSelect.render({\n el: '#tree_one',\n tips: '请选择行业标签',\n empty: '呀,数据为空',\n filterable: true,\n searchTips: '请在此搜索标签',\n paging: false,\n pageSize: 10,\n radio: false,\n repeat: false,\n clickClose: false,\n max: 0,\n height: '200px',\n theme: {\n color: '#409eff',\n },\n tree: {\n //是否显示树状结构\n show: true,\n //是否展示三角图标\n showFolderIcon: true,\n //是否显示虚线\n showLine: false,\n //间距\n indent: 10,\n //默认展开节点的数组, 为 true 时, 展开所有节点\n // expandedKeys: false,\n //是否严格遵守父子模式\n strict: true,\n //是否开启极简模式\n simple: true,\n //点击节点是否展开\n clickExpand: true,\n //点击节点是否选中\n clickCheck: true,\n },\n data: industryList,\n on: function (data) {\n var selectedData = [];\n var getSelectedData = function (arr) {\n arr.forEach(function (item) {\n if (item.children && item.children.length > 0) { // 判断是否有子节点\n getSelectedData(item.children);\n }\n selectedData.push(item.value);\n });\n };\n getSelectedData(data.arr);\n var ids = selectedData.join(',');\n $('#industry').val(ids);\n },\n})\n\n在使用 xmSelect 多选树形控件时,你可能需要获取所有选中的节点数据,包括子节点和父节点。默认情况下,on 事件回调函数只获取到了一级节点和没有子级的节点的数据。为了获取所有选中的节点,你需要使用递归函数遍历树形结构。\n\n下面是一个示例代码:\n\njavascript\nvar xm_one = xmSelect.render({\n // ...\n on: function (data) {\n var selectedData = [];\n var getSelectedData = function (arr) {\n arr.forEach(function (item) {\n if (item.children && item.children.length > 0) {\n getSelectedData(item.children);\n }\n selectedData.push(item.value);\n });\n };\n getSelectedData(data.arr);\n var ids = selectedData.join(',');\n $('#industry').val(ids);\n },\n});\n\n\n在这个示例代码中,我们定义了一个递归函数 getSelectedData,该函数会遍历传入的节点数组,并将选中的节点的 value 存入 selectedData 数组中。如果节点有子节点,则递归调用 getSelectedData 函数。最后,我们将 selectedData 数组的值使用逗号拼接成字符串,并将其赋值给 #industry 元素的 value 属性。\n\n这样,你就可以获取到所有选中的数据,包括一级节点、有子级的子节点和有子级的父节点的数据。
原文地址: https://www.cveoy.top/t/topic/qeKo 著作权归作者所有。请勿转载和采集!