0

我想获得以下动态代码:

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

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

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

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

任何帮助是极大的赞赏。

4

2 回答 2

6

试试这个:

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

但我想一个更“正确”的方法是使用@Exception建议的find,或者使用:

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

这基本上与 .find() 做同样的事情。有关两者之间的比较,请参阅SO 问题(tl;博士:它们几乎是等价的)。

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

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

这比您在评论中发布的解决方案要短一些。

您还应该注意,由于

dropDownObj= $("#scenario_select");

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

var items = dropDownObj.children('option').length;
于 2013-09-25T12:38:04.090 回答
3

这应该有效。

 var dropDownObj = $('#yourDropDownID');
 dropDownObj.find('option')
于 2013-09-25T12:38:08.620 回答