将无序列表转换为以下样式<;选择>;jquery中的下拉列表

将无序列表转换为以下样式<;选择>;jquery中的下拉列表,jquery,drop-down-menu,Jquery,Drop Down Menu,我想知道如何转换以下无序列表: <ul class="menu"> <li><a href="/">Category A</a></li> <li class="active"><a href="/category-b">Category B</a></li> <li><a href="/category-c">Category C</a><

我想知道如何转换以下无序列表:

<ul class="menu">
 <li><a href="/">Category A</a></li>
 <li class="active"><a href="/category-b">Category B</a></li>
 <li><a href="/category-c">Category C</a></li>
</ul>
使用jQuery转换为以下格式,而“active”类将被标识并转换为Select标记中的选定属性

<select>
    <option value="http://www.window-location-url.xxx/">Category A</option>
    <option value="http://www.window-location-url.xxx/category-b" selected="selected">Category B</option>
    <option value="http://www.window-location-url.xxx/category-c">Category C</option>
</select>

A类
B类
C类
编辑:我稍微更新了上面的代码,因为我意识到在转换之后,value属性需要插入窗口位置URL(域名),只有当它被选中时才会跳转到相关页面。

var items=$(“ul.menu li”)、slc=$(“”);
var items=$("ul.menu li"),slc=$("<select />");
items.each(function(i,e){
  var no=$("<option />"),a=$(">a",$(e));
  if($(e).hasClass("active")){no.attr("selected","selected");}
  no.text(a.text());
  no.attr("value",a.attr("href"))
});
项目。每个功能(即,e){ 变量号=$(“”),a=$(“>a”,$(e)); if($(e).hasClass(“活动”){no.attr(“选定的”、“选定的”);} 否.text(a.text()); no.attr(“value”,a.attr(“href”)) });

这应该能奏效。如果有问题,请告诉我。

首先,迭代列表项,并使用jQuery-检查每个列表项上名为
active
的类,构建一个select下拉列表。如果列表项具有
活动
类,请将选项元素的
选定
属性设置为
选定
。接下来,将下拉列表附加到您想要的任何位置


这很有效。但是链接是条带化的。我需要我的选择列表中的链接,这样当人们选择列表时,它将分别转到该页面。你能改进一下吗。谢谢。我的意思是转换后的选项元素没有“value”(例如value=“/”)属性,它应该从标签中先前的href中获取值。非常感谢!它转换得很好。我刚刚稍微更新了上面的代码,以更好地反映我的情况。如果您能帮助将窗口位置url插入“value”属性,将不胜感激。因为它只有在被选中时才会跳转到相关页面。此外,您是否可以将原始无序列表转换为下拉列表本身,而不附加到其他列表(例如:Czarchic给出的代码,)。如果做到这一点,它将是完美的。谢谢@Adamtan只有当您向我发送一个指向您保存的JSFiddle.ok的链接时,我才能提供帮助。这里是链接。我将Czarchic提供的代码应用于演示。除了他没有将我的活动
  • 转换为下拉列表中的选定属性外,其他一切都很正常。看看你能不能弄明白。谢谢