我想获得以下代码动态:
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)
这两个都行不通.我没有找到任何帮助(只有没有选项标签)
任何帮助是极大的赞赏.
试试这个:
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)