我正在尝试将选择列表克隆到标准ul列表中,以增强javascript选择框操作/样式。
基本上,如果我这样做: $(“#calendar select option”)。clone()。appendTo(“#test”);
我得到以下html
<ul id="test">
<option>All Types</option>
<option>Installation</option>
<option>Music</option>
<option>Performing Arts</option>
<option>Season</option>
<option>YUIYIYI</option>
</ul>
如何将所有<option>
代码更改为<li>
代码,而不会丢失所有值?
任何有用的帮助。
一个。
答案 0 :(得分:2)
我建议您通过浏览选项来获得正确的li
元素标记。
使用$.map
的示例:
var listItems = $("#calendar select option").map(function(){
return '<li>' + $(this).text() + '</li>';
}).get().join("");
$("#test").append(listItems);
检查上面的代码段here。
答案 1 :(得分:1)
这样的事情应该有效:
var list_items = '';
$("#calendar select option").each(function() {
var $this = $(this);
list_items += '<li rel="'+$this.val()+'">'+$this.html()+'</li>';
});
$("#test").append($(list_items));
正如旁注,从我记得,字符串连接和一个追加通常比一堆追加或数组推送更快。
来自@cballou的信用转换为rel标签部分......
答案 2 :(得分:1)
我的意见是,应将选项值视为“自定义选择”的rel标记:
var listitems = [];
$("#calendar select option").each(function() {
var $this = $(this);
listitems.push('<li rel="' + $this.val() + '">' + $this.text() + '</li>');
});
$('#test').html(listitems.join(""));
答案 3 :(得分:0)
而不是......
$("#calendar select option").clone().appendTo("#test");
尝试...
$("#calendar select option").each(function(){
$("<li>" + $(this).text() + "</li>").appendTo("#test");
});
简短又甜蜜。
答案 4 :(得分:0)
$("#calendar select option").each(
function(){
html = $(this).html();
e = document.createElement('li');
e.setAttribute('innerHTML',html);
$("#test").append(e);
}
);
没有经过测试,但是那应该可以帮到你。祝你好运!