|
|
|
|
$('#boxOption').append("<select>");
$.each(groupOptionValue['option'], function(optionIndex, optionValue)
{
$('#boxOption').append("<option>"+optionValue+"</option>");
});
$('#boxOption').append("</select>");
|
При пополнений такого кода получается вот так:
<select></select>
<option>name</option>
<option>name</option>
<option>name</option>
<option>name</option>
|
| |
|
|
|
|
|
|
|
для: tetron
(16.11.2015 в 14:53)
| | Сделал так:
$('#boxOption').append("<select id='ps"+groupOptionIndex+"'>");
$.each(groupOptionValue['option'], function(optionIndex, optionValue)
{
$("#boxOption #ps"+groupOptionIndex).append("<option>"+optionValue+"</option>");
});
|
Но не понятно почему если делать так:
$('#boxOption').append("<select>");
|
Вставляется:
<select></select> | |
|
|
|
|
|
|
|
для: tetron
(16.11.2015 в 16:23)
| | потому что это парный тег. браузер так работает, нельзя вставить пол-тега.
с $('#boxOption').append("<p>"); вы увидите тоже самое
вам лучше сделать так
var str = "<select id='ps"+groupOptionIndex+"'>";
$.each(groupOptionValue['option'], function(optionIndex, optionValue) {
str += "<option>"+optionValue+"</option>";
});
str = "</select>";
$('#boxOption').append(str); | |
|
|
|
|
|
|
|
для: AlexSol
(17.11.2015 в 15:20)
| | потому что это парный тег. браузер так работает, нельзя вставить пол-тега.
var a = [1, 2, 3], s = $('<select id="as"/>').appendTo('body');
$.each(a, function() {
$('<option value="???"/>').appendTo(s).text(this)
})
|
| |
|
|
|
|
|
|
|
для: confirm
(18.11.2015 в 16:42)
| | и в чем противоречие? | |
|
|
|
|
|
|
|
для: AlexSol
(19.11.2015 в 12:09)
| | вам лучше сделать так
Что надо полагать исходит от "полутегов", а ведь совсем не обязательно так, да и вообще средств добавления куда чем более... В общем это от недопонимания или от незнания ситуация у него возникла. | |
|
|
|
|
|
|
|
для: confirm
(19.11.2015 в 15:22)
| | во всех Best-Practices упоминается что лучше использовать один append вместо серии последовательных.
https://learn.jquery.com/performance/append-outside-loop/ | |
|
|
|
|
|
|
|
для: AlexSol
(20.11.2015 в 10:23)
| | Нельзя все разнообразие задач подогнать под один метод или функцию. И уже если так, то стоит тогда парится, достаточно join(), коли не видно задания значений у опций, а уж если есть, то тогда и изменяйте напрямую html, зачем дергаете apend:
var a = ['Str 1', 'Str 2', 'Str 3'];
document.querySelector('#my').innerHTML += '<select name="as">' + a.map(function(e, i) {
return '<option value="'+(i+1)+'">'+e+'</option>'
}).join('') + '</select>';
|
| |
|
|
|
|
|
|
|
для: confirm
(20.11.2015 в 12:09)
| | конечно же можно все делать разными методами. я только указал на то что решения из сообщений 2 и 4 не рекомендуется применять в jquery | |
|
|
|