#javascript #jquery #jquery-ui #jquery-selectors #dom-events
#javascript #jquery #jquery-пользовательский интерфейс #jquery-селекторы #dom-события
Вопрос:
У меня есть поле <выбрать> и кнопка в index.html :
<select id="mylist"></select>
<input type="button" id="btn" value="update">
Следующий Javascript обновит параметры поля < выбрать> при нажатии кнопки:
var btn=$('#btn');
btn.click(function(){
var optionList = GET_OBJECT_LIST(); //get an array of Object, object has id amp; name
var select = $("#mylist");
select.empty();
for(var i=0; i<optionList.length; i ){
select.append("<option value=" optionList[i].id ">" optionList[i].name "</option>");
}
});
До сих пор все было хорошо.
Затем я хотел бы реализовать функцию, которая после options
обновления, при щелчке мыши на опции в <select>
поле, я могу получить идентификатор объекта (т. Е. <option>
значение) выбранной опции. Как это сделать?
Комментарии:
1.
id
нетvalue
. Это разные свойства.2. @Blender, если вы внимательно проверите мой пост, идентификатор здесь является object.id Я хотел бы получить идентификатор объекта выбранной опции, который представляет объект в моем случае. Я использую <option value=object.id > по назначению. Что мне нужно, так это получить это object.id при нажатии мышью на определенную опцию.
Ответ №1:
Это может сработать (не уверен, возвращает ли это массив или нет, так что вы узнаете):
$('#mylist').change(function() {
var selected = $(this).find('option:selected');
// Foo.
});
Комментарии:
1. Привет, я могу получить значение выбранной опции (т. Е. object.id ) путем доступа к «выбранному[0].значению», но что означает это 0?
2.
[0]
это индекс массива. Вы можете выбрать несколько элементов, чтобы они были объединены в массив. Вы можете использовать.find('option:selected:eq(0)');
, если хотите, поскольку он выбирает первый выбранный элемент.
Ответ №2:
Я решил использовать следующий код, который точно соответствует тому, что я хочу:
$('#mylist').change(function() {
var selected_object_id = $(this).find('option:selected').attr('value');
console.log(selected_object_id); //it directly returns to me the selected option represented object id
});