Я хочу создать цикл в поле выбора. Но я хочу один код для другого выбора. Я могу создать для одного выбора, но хочу для нескольких.
для одного: с идентификатором
Я хочу изменить этот код в соответствии с классом или для множественного выбора. Мой код для этого:
<select class="foo"></select><select class="foo"></select>
а также:
$(document).ready(function() {
var elm = document.getElementByClass('foo'),
df = document.createDocumentFragment();
for (var i = 0; i <= 60; i++) {
var option = document.createElement('option');
option.value = i;
option.appendChild(document.createTextNode(" " + i));
df.appendChild(option);
}
elm.appendChild(df);
});
Поскольку вы используете jQuery, вы можете сделать так:
$('.foo').each(function() {
for (var i = 0; i <= 60; i++) {
$('<option />').val(i).html('#option ' + i).appendTo($(this));
}
});
Я просто обновил ваш jsfiddle, добавив:
(function() {
var foos=document.querySelectorAll(".foo");
for(var j=0;j<foos.length;j++){
var elm = foos[j],
df = document.createDocumentFragment();
for (var i = 1; i <= 42; i++) {
var option = document.createElement('option');
option.value = i;
option.appendChild(document.createTextNode("option #" + i));
df.appendChild(option);
}
elm.appendChild(df);
}
}());
образец проверить это, DEMO
Вы можете использовать селектор классов вместе с .append() и .clone()
$(document).ready(function () {
var df = document.createDocumentFragment();
for (var i = 0; i <= 60; i++) {
var option = document.createElement('option');
option.value = i;
option.appendChild(document.createTextNode(" " + i));
df.appendChild(option);
}
$('.foo').append(function () {
return $(df).clone()
})
});
Демо: скрипка
Попробуй это:
$('.foo').each(function(){
// call your code create option element here with $(this).append()
});
document.querySelectorAll(".foo");
вместоgetElementsByClassName
, который я использовал в своем ответе