获取动态选择的选项

Wan*_*ang 0 javascript jquery

我想获得以下代码动态:

var items = $("#scenario_select option");
Run Code Online (Sandbox Code Playgroud)

以上应该成为(有dropDownObj= $("#scenario_select");:

function someFunction(dropDownObj){
    var items = $(dropDownObj + " option");
    var items = $("#" + dropDownObj + " option");
}
Run Code Online (Sandbox Code Playgroud)

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

任何帮助是极大的赞赏.

rus*_*mus 6

试试这个:

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

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

function someFunction(dropDownObj){
    var items = $("option", dropDownObj);
}
Run Code Online (Sandbox Code Playgroud)

这与.find()基本相同.请参阅这个 SO问题以进行两者之间的比较(tl; dr:它们非常相同).

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

function someFunction(dropDownObj){
    var items = $("option", dropDownObj).length;
}
Run Code Online (Sandbox Code Playgroud)

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

你也应该注意到

dropDownObj= $("#scenario_select");
Run Code Online (Sandbox Code Playgroud)

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

var items = dropDownObj.children('option').length;
Run Code Online (Sandbox Code Playgroud)

  • 如果你指的是关于你问题的downvotes,那不是我.我认为你的答案是正确的,并且会相应地提出. (3认同)