我无法弄清楚如果可能的话,如何在append或html方法中执行$ .each。 例如:
我有数组
cities = [Larissa,Athens,Patra];
我想创建以下代码:
` $('#cities').html(' <label for="cities">Select City</label><select name="cities" id="city">' +
' <option value="Larissa">Larissa</option> ' +
' <option value="Athens">Athens</option> ' +
' <option value="Thessaloniki">Thessaloniki</option> ' +
' <option value="Patra">Patra</option>' +'</select>');`
如何根据我的数组动态创建选项值和名称。 欢迎任何洞察,谢谢
答案 0 :(得分:1)
以下是您最初使用$.each
进行此操作的方法。
var cities = ['Larissa','Athens','Patra'];
$.each(cities, function(index, city){
$('select').append('<option value="' + city + '">' + city + '</option>')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select></select>
答案 1 :(得分:0)
使用Array#map
和Array#join
方法。
var cities = ['Larissa', 'Athens', 'Patra'];
$('#cities').html(' <label for="cities">Select City</label><select name="cities" id="city">' +
cities.map(function(v) {
return '<option value="' + v + '">' + v + '</option> ';
}).join('') + '</select>'
);
答案 2 :(得分:0)
以下是使用<section>
和$.append()
的演示:
$.map()
var cities = ['Larissa', 'Athens', 'Patra'];
$('#cities').append(
// add label
$('<label>', {
for: "cities",
text: "Select City"
}) // end of label
,
// followed by the select with its options
$('<select>', {
name: 'cities',
id: 'city'
}).append( // appending the options in select
$.map(cities, function(val, ndx){
return $('<option>', {
value : val,
text : val
})
})
) // end of select
)
答案 3 :(得分:0)
你应该试试这个
var cities = ['Larissa','Athens','Patra'];
var select = $('<select>');
$(cities).each(function (index, item) {
select.append('<option>'+item+'</option>')
})
$('#cities').html(' <label for="cities">Select City</label>');
$('#cities').append(select);