2012-11-30 43 views
1

我有一個腳本可以從ul列表中生成一個可選組選擇,然後將其替換。我想更改函數來生成選擇列表,但不能替換ul列表。這裏是UL:將選擇列表功能從「刪除」更改爲「添加到」

<ul id="sitemap"> 
    <li><a href="www.google.com">Home</a></li> 
    <li><a href="www.google.com">Small Business</a> 
     <ul> 
      <li><a href="www.google.com">Laptops</a></li> 
      <li><a href="www.google.com">Workstations</a></li> 
      <li><a href="www.google.com">Workstations</a></li> 
      <li><a href="www.google.com">Printers</a></li> 
      <li><a href="www.google.com">Mobile Phones</a></li> 
     </ul> 
    </li> 
    <li><a href="www.google.com">Public Sector</a> 
     <ul> 
      <li><a href="www.google.com">State Government</a></li> 
      <li><a href="www.google.com">Federal Government</a></li> 
      <li><a href="www.google.com">Support and Drivers</a></li> 
     </ul> 
    </li> 
    <li><a href="www.google.com">Large Enterprise</a> 
     <ul> 
      <li><a href="www.google.com">Services</a></li> 
      <li><a href="www.google.com">Solutions</a></li> 
     </ul> 
    </li> 
</ul> 

而且JS:

function sitemapCycle(){ 
    if(typeof(sitemapNode)==="undefined") sitemapNode= $("#sitemap"); 
    if($(this).find("ul").length) 
    { 
     sitemapNode= $(sitemapNode).append('<optgroup label="'+$(this).children().first().text()+'" />').children().last(); 
     $(this).find("ul li").each(sitemapCycle); 
     sitemapNode= $(sitemapNode).parent(); 
    } 
    else 
    { 
     $(sitemapNode).append('<option value="'+$(this).children().attr("href")+'">'+$(this).text()+'</option>'); 
    } 
} 

var sitemapNode; 

$("#sitemap").removeAttr("id").after('<select id="sitemap" />').children().each(sitemapCycle).parent().remove();​ 

我不會因此與JS不過我以爲刪除

var sitemapNode; 

$("#sitemap").removeAttr("id").after('<select id="sitemap" />').children().each(sitemapCycle).parent().remove();​ 

會做的伎倆經歷,但它不」噸。這是一個活生生的例子:http://jsfiddle.net/XvruF/

回答

3

更改最後一行:

$("#sitemap").removeAttr("id").after('<select id="sitemap" />').children().each(sitemapCycle);​ 
+0

所以這是'.parent()刪除()'。感謝那。 – Omega

+1

請注意,它確實將ID從UL移至了選定項目。代碼邏輯使用它。 – Jazaret

+0

如果我想保留UL上的id,該怎麼辦? – Omega

相關問題