我想让以下代码动态化:
var items = $("#scenario_select option");
上面应该变成(dropDownObj= $("#scenario_select");
:
function someFunction(dropDownObj){
var items = $(dropDownObj + " option");
var items = $("#" + dropDownObj + " option");
}
这两个都不起作用。我没有找到任何帮助(只有没有选项标签)
非常感谢任何帮助。
答案 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')