Я не могу, по жизни, разобраться, почему JQuery не может найти список выбора в этом коде. Я попытался получить доступ к элементам Select на нескольких тестовых страницах JQuery, и это всегда кажется прекрасным, но это ничего не делает:
<html>
<head>
<script src="jquery.js"></script>
<script>
$( document ).ready(function() {
var new_options = ['were filled with rocks', 'smelled like chicken pox', 'belonged to angry green crocs', 'are kept in a mouldy box' ];
/* Remove all options from the select list */
$( "#activity_1" ).empty();
/* Insert the new ones from the array above */
$.each(new_options, function(value) {
$( "#activity_1" ).append($('<option>', {value: 'Testing', text : 'Testing'}));
});
});
</script>
</head>
<body>
<select id='#activity_1'><option value='dud'>This shouldn't be here</option</select>,
</body>
</html>
+ Изменить
<select id='#activity_1'><
// ^
в
<select id='activity_1'><
ваш selector $('#activity')
ищет элемент с идентификатором "activity", а не "#activity"
Вам нужно избегать двоеточия, используя две обратные черточки:
$( "#\\#activity_1" ).empty();
замените ниже.
$.each(new_options, function(value) {
$( "#\\#activity_1" ).append($('<option>', {value: 'Testing', text : 'Testing'}));
});
Редактировать:
Если вы хотите использовать любой из метасимволов (таких как!) # $% & '() * +,./:; <=>? @[] ^' {|} ~) Как буквальная часть имя, вы должны избежать символа с двумя обратными косыми чертами: например, если у вас есть элемент с id = "# foobar", вы можете использовать селектор $ ("#\# foobar"). Спецификация CSS W3C содержит полную,
Справочник API-интерфейса JQuery
Или используйте id
элемента таким образом, чтобы он не содержал метасимволов.
<option>
не закрыт должным образом.