2014-04-02 129 views
1

之前如何獲得jQuery中父樹子結構在ul列表中的結構?

<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> 

我想匹配的李-ID與父母-ID,然後,如果匹配的父-id列表應附加到li-id列表。

到目前爲止,我已經試過這樣:

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

回答

2

嘗試

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

2

嘗試

$("li").each(function(){ 
var ul=$("<ul/>"); 
ul.append($("[parent-id="+$(this).attr("li-id")+"]")); 
$(this).append(ul); 

}); 

Demo

0
$("li").each(function() { 
    var lid = $(this).attr("li-id"); 
    var pid = $(this).attr("parent-id"); 
    var li = $(this); 
    if (pid != 0) { 
     // alert(pid); 
     var theli = $("li").filter("[li-id='" + pid + "']"); 
     if (theli.find("ul").length > 0) { 
      theli.find("ul").append("<li parent-id='" + pid + "' li-id='" + lid + "'>" + li.html() + "</li>"); 
     } else { 
      theli.html("<ul></ul>"); 
      theli.find("ul").append("<li parent-id='" + pid + "' li-id='" + lid + "'>" + li.html() + "</li>"); 

     } 
     li.remove(); 
    } 
}); 

試試這個代碼, 的jsfiddle網址:http://jsfiddle.net/mukuljp/Nvguw/