最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

详解layui中的树形关于取值传值问题

来源:懂视网 责编:小采 时间:2020-11-27 22:21:33
文档

详解layui中的树形关于取值传值问题

详解layui中的树形关于取值传值问题:本文介绍了layui中的树形关于取值传值问题,分享给大家,具体如下: 这个是我们需要的效果,实际操作中会先执行渲染 然后在执行方法,然后我们发现树形的JSON是空,调试了N遍一直以为是优先级别的问题了。 最后解决方案是 <script type=t
推荐度:
导读详解layui中的树形关于取值传值问题:本文介绍了layui中的树形关于取值传值问题,分享给大家,具体如下: 这个是我们需要的效果,实际操作中会先执行渲染 然后在执行方法,然后我们发现树形的JSON是空,调试了N遍一直以为是优先级别的问题了。 最后解决方案是 <script type=t

本文介绍了layui中的树形关于取值传值问题,分享给大家,具体如下:

这个是我们需要的效果,实际操作中会先执行渲染 然后在执行方法,然后我们发现树形的JSON是空,调试了N遍一直以为是优先级别的问题了。

最后解决方案是

<script type="text/javascript">
 ////layui 的 form 模块
 var form = "";
 layui.use(['form'], function () {
 // $ = layui.jquery;
 form = layui.form;

 //获取节点数据
 getTreeData();
 //return false;
 });
 function getTreeData() {
 $.ajax({
 //async: false,
 type: "post",
 url: "/api/WebFW//getOrgTree",
 datatype: "json",
 contenttype: "application/json; charset=utf-8",
 success: function (jdata) {
 var xtree1 = new layuiXtree({
 elem: 'xtree1',
 form: form,
 data: strToJson(jdata),
 isopen: true, //false初始关闭,true打开
 click: function (data) { //节点选中状态改变事件监听,全选框有自己的监听事件
 console.log(data.elem); //得到checkbox原始DOM对象
 console.log(data.elem.checked); //是否选中,true选中
 alert(data.value); //弹出value值
 }
 });

 //获取选中val
 document.getElementById('btn1').onclick = function () {
 var oCks = xtree1.GetChecked();
 for (var i = 0; i < oCks.length; i++) {
 alert(oCks[i].value);
 }
 }

 //子节点选中改变,父节点更改自身状态
 layuiXtree.prototype.ParendCheck = function (ckelem) {
 var _this = this;
 var xtree_p = ckelem.parentNode.parentNode;
 if (xtree_p.getAttribute('class') == 'layui-xtree-item') {
 var xtree_all = _this.getChildByClassName(xtree_p, 'layui-xtree-item');
 var xtree_count = 0;
 for (var i = 0; i < xtree_all.length; i++) {
 if (_this.getChildByClassName(xtree_all[i], 'layui-xtree-checkbox')[0].checked) {
 xtree_count++;
 }
 }
 if (xtree_count <= 0) {
 _this.getChildByClassName(xtree_p, 'layui-xtree-checkbox')[0].checked = false;
 _this.getChildByClassName(xtree_p, 'layui-xtree-checkbox')[0].nextSibling.classList.remove('layui-form-checked');
 } else {
 _this.getChildByClassName(xtree_p, 'layui-xtree-checkbox')[0].checked = true;
 _this.getChildByClassName(xtree_p, 'layui-xtree-checkbox')[0].nextSibling.classList.add('layui-form-checked');
 }
 this.ParendCheck(_this.getChildByClassName(xtree_p, 'layui-xtree-checkbox')[0]);
 }
 }

 //渲染之前按照选中的末级去改变父级选中状态
 layuiXtree.prototype.ParentCheckboxChecked = function (e) {
 var _this = this;
 if (e.parentNode.parentNode.getAttribute('class') == 'layui-xtree-item') {
 var _pe = _this.getChildByClassName(e.parentNode.parentNode, 'layui-xtree-checkbox')[0];
 _pe.checked = true;
 _this.ParentCheckboxChecked(_pe);
 }
 }

 //获取全部选中的末级checkbox对象
 layuiXtree.prototype.GetChecked = function () {
 var _this = this;
 var arr = new Array();
 var arrIndex = 0;
 var cks = _this.getByClassName('layui-xtree-checkbox');
 for (var i = 0; i < cks.length; i++) {
 if (cks[i].checked && cks[i].getAttribute('data-xend') == '1') {
 arr[arrIndex] = cks[i];
 arrIndex++;
 }
 }
 return arr;
 }

 //获取全部的原始checkbox对象
 layuiXtree.prototype.GetAllCheckBox = function () {
 var _this = this;
 var arr = new Array();
 var arrIndex = 0;
 var cks = _this.getByClassName('layui-xtree-checkbox');
 for (var i = 0; i < cks.length; i++) {
 arr[arrIndex] = cks[i];
 arrIndex++;
 }
 return arr;
 }

 //根据值来获取其父级的checkbox原dom对象
 layuiXtree.prototype.GetParent = function (a) {
 var _this = this;
 var cks = _this.getByClassName('layui-xtree-checkbox');
 for (var i = 0; i < cks.length; i++) {
 if (cks[i].value == a) {
 if (cks[i].parentNode.parentNode.getAttribute('id') == _this._container.getAttribute('id')) return null;
 return _this.getChildByClassName(cks[i].parentNode.parentNode, 'layui-xtree-checkbox')[0];
 }
 }
 return null;
 }
 }
 });
 }

 function strToJson(str) {
 var json = (new Function("return " + str))();
 return json;
 }
</script>

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

详解layui中的树形关于取值传值问题

详解layui中的树形关于取值传值问题:本文介绍了layui中的树形关于取值传值问题,分享给大家,具体如下: 这个是我们需要的效果,实际操作中会先执行渲染 然后在执行方法,然后我们发现树形的JSON是空,调试了N遍一直以为是优先级别的问题了。 最后解决方案是 <script type=t
推荐度:
标签: layer 的值 layui
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top