0

我有一个<选择>字段和的index.html按钮:如何在我的情况下获得<select>中所选选项的ID?

<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 & 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>领域的选项鼠标点击,我可以选择的选项中获取对象ID(即<option>值) 。怎么做??

+0

'id'不是'value'。他们是不同的属性。 – Blender 2011-04-21 06:33:54

+0

@Blender,如果你仔细检查我的帖子,这里的id是object.id,我想获得选中选项的对象id,代表我的情况下的一个对象。目的是使用

回答

2

这可能会实现(不知道这是否会返回一个数组或没有,所以你会发现):

$('#mylist').change(function() { 
    var selected = $(this).find('option:selected'); 

    // Foo. 
}); 
+0

嗨,我可以通过访问“selected [0] .value”得到所选的选项值(即object.id),但是这意味着什么? – Mellon 2011-04-21 06:47:35

+0

'[0]'是数组索引。您可以选择多个项目,因此它们将被聚合在数组中。您可以使用'.find('选项:selected:eq(0)');',如果您愿意,可以选择第一个选定的项目。 – Blender 2011-04-21 15:00:20

1

我想通了,使用下面的代码,适合正是我想要的:

$('#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 
}); 
相关问题