获取动态选择的选项

时间:2013-09-25 12:36:04

标签: javascript jquery

我想让以下代码动态化:

var items = $("#scenario_select option");

上面应该变成(dropDownObj= $("#scenario_select");

function someFunction(dropDownObj){
    var items = $(dropDownObj + " option");
    var items = $("#" + dropDownObj + " option");
}

这两个都不起作用。我没有找到任何帮助(只有没有选项标签)

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:6)

试试这个:

function someFunction(dropDownObj){
    var items = $('#' + dropDownObj.prop('id') + " option");
}

但我认为更合适的方法是使用@Exception建议的find,或者使用:

function someFunction(dropDownObj){
    var items = $("option", dropDownObj);
}

与.find()基本相同。请参阅This SO问题,以便对两者进行比较(tl; dr:它们非常相同)。

要查找项目数(如您在评论中所述),您还可以使用:

function someFunction(dropDownObj){
    var items = $("option", dropDownObj).length;
}

比您在评论中发布的解决方案略短。

你应该注意到,因为

dropDownObj= $("#scenario_select");

它已经是一个jQuery对象,你不需要用$包装它。考虑到这一点,您的解决方案将成为:

var items = dropDownObj.children('option').length;

答案 1 :(得分:3)

这应该有效。

 var dropDownObj = $('#yourDropDownID');
 dropDownObj.find('option')