jquery - 如何在 jQuery 中获取 ul 列表中父子关系的树结构?

标签 jquery

之前

<ul>
<li parent-id="0" li-id="16">Anthropology Department</li>
<li parent-id="16" li-id="18">Anthropology Faculty Collections</li>
<li parent-id="16" li-id="23">Shared Collections</li>
<li parent-id="0" li-id="19">Center for Research on Vermont</li>
<li parent-id="19" li-id="24">Collections for Testing</li>
<li parent-id="24" li-id="25">Geology Department</li>

//我想要这样之后

<ul>
<li parent-id="0" li-id="16">Anthropology Department
    <ul>
        <li parent-id="16" li-id="18">Anthropology Faculty Collections</li>
        <li parent-id="16" li-id="23">Shared Collections</li>
    </ul>
</li>
<li parent-id="0" li-id="19">Center for Research on Vermont
    <ul>
        <li parent-id="19" li-id="24">Collections for Testing
            <ul>
               <li parent-id="24" li-id="25">Geology Department
                </li> 
            </ul>
        </li>
    </ul>
</li>

我想将 li-id 与parent-id 进行匹配,然后如果匹配的parent-id 列表应附加到li-id 列表中。

到目前为止我已经尝试过:

var liid = $('li').attr('li-id');
var parid = $('li').attr('parent-id');
if(liid==parid){
parid.appendTo(liid)
}

最佳答案

尝试

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

演示:Fiddle

关于jquery - 如何在 jQuery 中获取 ul 列表中父子关系的树结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805410/

相关文章:

jQuery 如何找到 div 所在的 li?

php - jQuery+PHP。请求/响应

javascript - 调整大小时,将点固定在交互式 map 上的某个位置

javascript - 检查页面是否有 jQuery、jQuery.ui 和 jQuery.ui.css 的最佳方法是什么

javascript - 在没有ajax的情况下将多个变量传递到不同页面的最佳方法

javascript - 未获取现有 cookie 时弹出年龄验证

javascript - jquery-如何为具有多个类的元素定义特定变量类

jquery - CSS 3D 将 div 转换为 flex 的拱形

javascript - 带有 codemirror.net 的 jquery-textcomplete

图像上的 JQuery 文本 slideDown/slideUp 叠加不断跳动?