Не получается добавить OPTION в SELECT, используя jQuery
Создаю форму, используя только jQuery. В <BODY></BODY> файла .html НИЧЕГО нет.
Файл .js
var selectValues = { 1: "test 1", 2: "test 2", 3: "test 3" };
var $form = $("<form/>", {
action: "script.php",
method: "POST",
}),
apartMC = $('<div class="block" />').append(
$("<div/>", {
class: "infofield",
text: "Выберите необходимые пункты",
}),
$("<i/>", {
class: "infofield",
text: "(можно выбрать несколько вариантов):",
}),
$("<br/>"),
$("<select/>", {
id: "apart",
multiple: true,
}),
$.each(selectValues, function (key, value) {
var $option = $("<option/>", {
value: key,
text: value,
});
$("#apart").append($option);
})
);
$form
.append(apartMC)
.appendTo($("body"));
Файл .html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script src="/web/scr2.js" defer></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js">
</script>
<title>My app</title>
</head>
<body>
</body>
</html>
В SELECT ничего не добавляется. Подскажите, пожалуйста, где ошибка?
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Не самый оптимальный вариант, но тем не менее. Ошибка была в том, что на момент $.each не существовал #apart
var selectValues = { 1: "test 1", 2: "test 2", 3: "test 3" };
var $form = $("<form/>", {
action: "script.php",
method: "POST",
}),
apartMC = $('<div class="block" />').append(
$("<div/>", {
class: "infofield",
text: "Выберите необходимые пункты",
}),
$("<i/>", {
class: "infofield",
text: "(можно выбрать несколько вариантов):",
}),
$("<br/>"),
$("<select/>", {
id: "apart",
multiple: true,
})
);
$form
.append(apartMC)
.appendTo($("body"));
$.each(selectValues, function (key, value) {
var $option = $("<option/>", {
value: key,
text: value,
});
$("#apart").append($option);
})