我试图只使用一次函数而不是为我需要转换为选择列表的每个UL LI块写一个函数。我的工作代码在http://jsfiddle.net/qqzB5/
我试过这个但是它会遍历所有的li,而不仅仅是特定部分中的那个:
$('.filterSection').each(function(){
$('<select class="locationFilterSelect" />').appendTo(this);
//Create Default option "Select One"
$("<option />", {
"selected": "selected",
"value" : "",
"text" : "Select One"
}).appendTo('select', this);
// Populate dropdown with menu items
$('li', this).each(function() {
var el = $(this);
$("<option />", {
"text" : el.text()
}).appendTo('select', this);
});
});
答案 0 :(得分:2)
你搞砸了.appendTo
。它需要一个参数,不是吗?并且您需要使用一些范围:从外部处理程序传递select
变量到内部处理程序。看看这段代码:
$('.filterSection').each(function(){
var select = $('<select class="locationFilterSelect" />')
select.appendTo(this);
//Create Default option "Select One"
$("<option />", {
"selected": "selected",
"value" : "",
"text" : "Select One"
}).appendTo(select);
// Populate dropdown with menu items
$(this).find('li').each(function() {
var el = $(this);
$("<option />", {
"text" : el.text()
}).appendTo(select);
});
});
答案 1 :(得分:1)
$('.filterSection').each(function(){
var section = $(this);
var select = $('<select class="locationFilterSelect" />')
select.appendTo(section);
//Create Default option "Select One"
$("<option />", {
"selected": "selected",
"value" : "",
"text" : "Select One"
}).appendTo(select);
// Populate dropdown with menu items
$(this).find('li').each(function(i,el) {
$("<option />", {
"text" : $(el).text()
}).appendTo(select);
});
});