美文网首页
jquery写树形结构

jquery写树形结构

作者: 冰红茶ht | 来源:发表于2018-01-03 10:27 被阅读0次

js代码

var data = [{element:'图片',id:'1',pid:'0'},//count=1
    {element:'大图片',id:'2',pid:'1'},
    {element:'png',id:'3',pid:'2'},
    {element:'jpeg',id:'4',pid:'2'},
    {element:'gif',id:'5',pid:'2'},
    {element:'gif11',id:'6',pid:'5'},
    {element:'gif111',id:'7',pid:'6'},
    {element:'gif222',id:'8',pid:'6'},
    {element:'文字',id:'9',pid:'0'},
    {element:'宋体',id:'10',pid:'9'},
    {element:'宋体111',id:'11',pid:'10'},
    {element:'宋体222',id:'12',pid:'10'},
    {element:'黑体',id:'13',pid:'9'},];
     function transTreeData(arr) {
            if(arr.length) {
            var pid = '0';
            return findChild(pid, arr);
          } else {
            return [];
          }
     }
  function findChild(pid, arr) {
    var _arr = [];
    for(var i=0; i<arr.length; i++) {
        if(arr[i].pid == pid) {
            var obj = arr[i];
            obj.children = findChild(arr[i].id, arr);
            _arr.push(obj);
        }
    }
    return _arr;
  }
function createDom (arr) {
  var str = '<ul>';
  for (var i=0; i < arr.length; i++) {
    str+= `<li><input type="checkbox" id=${arr[i].id} value="" `+`/><label name=${arr[i].id}>`+ arr[i].element+`</label>`;
    if(arr[i].children.length) {
      str+=createDom(arr[i].children);
    }
  }
  str += '</li></ul>';
  return str;
}

$(document).ready(function(){
  $('#treeContainer').html(createDom((transTreeData(data))));
  $('#treeContainer').delegate('label', 'click', function() {
    var id = $(this).attr('name');
    $("#"+id).parent('li').find('input').prop({
      checked: !($('#'+id).prop('checked'))
    });
  });
  $('#treeContainer').delegate('input', 'change', function() {
    var id = $(this).prop('id');
    $("#"+id).parent('li').find('input').prop({
      checked: $(this)[0].checked
    });
    
  });
  $('#btn').click(function() {
  const arr = [];
  $(':checked').map(function(index, item) {
    arr.push({
      id: $(this).attr('id'),
    })
  })
  console.log('------arr', arr);
})
});

HTML 代码

<code>
<div id="treeContainer"></div>
<button id="btn">提交</button>
</code>

相关文章

  • jquery写树形结构

    js代码 HTML 代码 提交

  • jquery 树形结构

    下载demo 之后,按照此路径打开看到实例。 树形结构原理: 父节点pId是0 子节点的pId和父节点的id相同 ...

  • js 数组与树形结构对象相互转换

    数组 树形结构对象 数组转成树形结构 树形结构转成数组

  • javascript -- 查询树位置

    寻找树形结构路径; 根据信息查询树形结构位置;根据ID查询INDEX; 我决定,以后每发一个博文都写一个 故事。 ...

  • 【恋上数据结构与算法一】(六)二叉树

    二叉树 线性结构 树形结构 二叉树 多叉树 生活中的树形结构 ◼ 使用树形结构可以大大提高效率◼ 树形结构是算法面...

  • 十、二叉树(Binary Tree)

    1、树形结构 之前所讲的那些数组、链表、栈、队列等都是线性结构。 下面就是树形结构: 为什么要用到树呢?使用树形结...

  • 数据挖掘-决策树算法

    决策树算法是一种比较简易的监督学习分类算法,既然叫做决策树,那么首先他是一个树形结构,简单写一下树形结构(数据结构...

  • 政府项目IE8 常用插件

    http://www.jq22.com/jquery-info11955jquery树形选择器 兼容IE8

  • jQuery zTree 展示树形表格

    jQuery zTree 展示树形表格 基本测试Demo 显示选择的值

  • 树形结构

    树是一种分层数据的抽象模型。它和散列表一样是一种非顺序数据结构,它对于存储需要快速查找的数据非常有用。 树的相关术...

网友评论

      本文标题:jquery写树形结构

      本文链接:https://www.haomeiwen.com/subject/emxhnxtx.html