jQuery - 展开树视图到选定的节点级别 [英] jQuery - Expand Tree View up to selected node level

查看:79
本文介绍了jQuery - 展开树视图到选定的节点级别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将树形视图展开至选定的节点级别。但是我对此没有任何想法,请任何人都可以帮助我。



例如,我们在'类别列表'中点击'Parent d',然后展开'树视图列表'至'父级'级别以查看更多详情 此处

HTML

 < H3> 
类别列表
< / h3>

点击任何li展开树形列表直到选定的级别

 < ul id ='category'> 
< li li-id ='1'id ='1'>家长1< / li>
< li li-id ='2'id ='2'>家长2< / li>
< li li-id ='3'id ='3'>家长3< / li>
< li li-id ='4'id ='4'>家长4< / li>
< li li-id ='5'id ='5'>父c< / li>
< li li-id ='6'id ='6'>父d< / li>
< li li-id ='7'id ='7'>父母< / li>
< li li-id ='8'id ='8'>父b< / li>
< li li-id ='9'id ='9'>父母e< / li>
< li parent-id ='5'li-id ='10'>父母x< / li>
< / ul>

树视图列表

 < H3> 
节点视图
< / h3>
< div class ='tree'>
< ul id ='ulCollapse'>
< li parent-id ='0'li-id ='1'>父母1< / li>
< li parent-id ='1'li-id ='2'>父母2< / li>
< li parent-id ='1'li-id ='3'>父母3< / li>
< li parent-id ='1'li-id ='4'>父母4< / li>
< li parent-id ='3'li-id ='5'>父c< / li>
< li parent-id ='3'li-id ='6'>父母d< / li>
< li parent-id ='2'li-id ='7'>父母< / li>
< li parent-id ='4'li-id ='8'>父b< / li>
< li parent-id ='4'li-id ='9'>父母e< / li>
< li parent-id ='5'li-id ='10'>父母x< / li>
< / ul>
< / div>

jQuery

  // $('#ulCollapse li')。hide(); 
$ b $('ul li')。click(function(){
var nodeId = $(this).attr('li-id');
alert(nodeId );
})

var $ ul = $('ul');
$ b $ ul.find('li [parent-id]')。each(function(){
$ ul.find('li [parent-id ='+ $(this ).attr('li-id')+']')
.wrapAll('< ul />')
.parent()
.appendTo(this)
});

DEMO

解决方案

你试图达到。



但也许:lt()就是你要找的东西



HTML

 < h3> 
类别列表
< / h3>

< ul id ='category'>
< li li-id ='1'id ='1'>家长1< / li>
< li li-id ='2'id ='2'>家长2< / li>
< li li-id ='3'id ='3'>家长3< / li>
< li li-id ='4'id ='4'>家长4< / li>
< li li-id ='5'id ='5'>父c< / li>
< li li-id ='6'id ='6'>父d< / li>
< li li-id ='7'id ='7'>父母< / li>
< li li-id ='8'id ='8'>父b< / li>
< li li-id ='9'id ='9'>父母e< / li>
< li li-id = '10'id ='10'> Parent x< / li>
< / ul>
< br>
< br>

< h3>
节点视图
< / h3>
< div class ='tree'>
< ul id ='ulCollapse'>
< li parent-id ='1'>
< ul>
< li>家长1< / li>
< / ul>
< / li>
< li parent-id ='2'>
< ul>
< li>父母2< / li>
< li>家长3< / li>
< li>家长4< / li>
< / ul>
< / li>
< li parent-id ='3'>
< ul>
< li>父c< / li>
< li>父母d< / li>
< li>父母< / li>
< / ul>
< / li>
< li parent-id ='4'>
< ul>
< li>父母b< / li>
< li>父母e< / li>
< / ul>
< / li>
< li parent-id ='5'>
< ul>
< li>父母x< / li>
< / ul>
< / li>
< / ul>
< / div>

JS

  $ cats = $(#category); 
$ tree = $(#ulCollapse);
$ tree.children()。hide();
$ b $ cats.on(click,li,function(){
var nodeId = $(this).attr('li-id');
console.info(NODE ID:,nodeId);
$ tree.children()。hide();
var maxEq = $ tree.children([parent-id ='+ nodeId (');}')。index();
maxEq <0&&(maxEq = 0);
maxEq ++; // LTE因为:lte()不存在
)console.info(MAX EQ:,maxEq);
$ tree.children(:lt(+ maxEq +))。show();
});

FIDDLE ==> https://jsfiddle.net/x45j4fx6/1/


I am trying to expand the tree view up to selected node level. But I am not getting any idea about this please can any one help me on this.

For example We clicked on 'Parent d' in 'Category list' then expand 'Tree View List' up to 'Parent d' level for more details check Here

HTML

<h3>
Category list
</h3>

When click on any li expand tree list up to selected level

<ul id='category'>
  <li li-id='1' id='1'>Parent 1</li>
  <li li-id='2' id='2'>Parent 2</li>
  <li li-id='3' id='3'>Parent 3</li>
  <li li-id='4' id='4'>Parent 4</li>
  <li li-id='5' id='5'>Parent c</li>
  <li li-id='6' id='6'>Parent d</li>
  <li li-id='7' id='7'>Parent a</li>
  <li li-id='8' id='8'>Parent b</li>
  <li li-id='9' id='9'>Parent e</li>
<li parent-id='5' li-id='10'>Parent x</li>
</ul>

Tree View List

<h3>
Node View
</h3>
<div class='tree'>
<ul id='ulCollapse'>
  <li parent-id='0' li-id='1'>Parent 1</li>
  <li parent-id='1' li-id='2'>Parent 2</li>
  <li parent-id='1' li-id='3'>Parent 3</li>
  <li parent-id='1' li-id='4'>Parent 4</li>
  <li parent-id='3' li-id='5'>Parent c</li>
  <li parent-id='3' li-id='6'>Parent d</li>
  <li parent-id='2' li-id='7'>Parent a</li>
  <li parent-id='4' li-id='8'>Parent b</li>
  <li parent-id='4' li-id='9'>Parent e</li>
<li parent-id='5' li-id='10'>Parent x</li>
</ul>
</div>

jQuery

//$('#ulCollapse li').hide();

$('ul li').click(function(){
    var nodeId = $(this).attr('li-id');
    alert(nodeId);
})

var $ul = $('ul');

$ul.find('li[parent-id]').each(function() {
  $ul.find('li[parent-id=' + $(this).attr('li-id') + ']')
    .wrapAll('<ul />')
    .parent()
    .appendTo(this)
});

DEMO

解决方案

I don't fully understand what you're trying to achieve.

But maybe :lt() is what you're looking for

HTML

<h3>
Category list
</h3>

<ul id='category'>
  <li li-id='1' id='1'>Parent 1</li>
  <li li-id='2' id='2'>Parent 2</li>
  <li li-id='3' id='3'>Parent 3</li>
  <li li-id='4' id='4'>Parent 4</li>
  <li li-id='5' id='5'>Parent c</li>
  <li li-id='6' id='6'>Parent d</li>
  <li li-id='7' id='7'>Parent a</li>
  <li li-id='8' id='8'>Parent b</li>
  <li li-id='9' id='9'>Parent e</li>
  <li li-id='10' id='10'>Parent x</li>
</ul>
<br>
<br>

<h3>
Node View
</h3>
<div class='tree'>
  <ul id='ulCollapse'>
    <li parent-id='1'>
      <ul>
        <li>Parent 1</li>
      </ul>
    </li>
    <li parent-id='2'>
      <ul>
        <li>Parent 2</li>
        <li>Parent 3</li>
        <li>Parent 4</li>
      </ul>
    </li>
    <li parent-id='3'>
      <ul>
        <li>Parent c</li>
        <li>Parent d</li>
        <li>Parent a</li>
      </ul>
    </li>
    <li parent-id='4'>
      <ul>
        <li>Parent b</li>
        <li>Parent e</li>
      </ul>
    </li>
    <li parent-id='5'>
      <ul>
        <li>Parent x</li>
      </ul>
    </li>
  </ul>
</div>

JS

$cats = $("#category");
$tree = $("#ulCollapse");
$tree.children().hide();

$cats.on("click", "li", function() {
  var nodeId = $(this).attr('li-id');
  console.info("NODE ID: ", nodeId);
  $tree.children().hide();
  var maxEq = $tree.children("[parent-id='" + nodeId + "']").index();
  maxEq < 0 && (maxEq = 0);
  maxEq++; //LTE since :lte() doesn't exist
  console.info("MAX EQ: ", maxEq);
  $tree.children(":lt(" + maxEq + ")").show();
});

FIDDLE ==> https://jsfiddle.net/x45j4fx6/1/

这篇关于jQuery - 展开树视图到选定的节点级别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆