Я хотел получить следующий динамический код:
var items = $("#scenario_select option");
Выше должно быть (с dropDownObj= $("#scenario_select");
function someFunction(dropDownObj){
var items = $(dropDownObj + " option");
var items = $("#" + dropDownObj + " option");
}
Это не работает. Я не нашел никакой помощи по этому поводу (только без тега options)
Любая помощь приветствуется.
Попробуй это:
function someFunction(dropDownObj){
var items = $('#' + dropDownObj.prop('id') + " option");
}
Но я полагаю, что более "правильный" способ сделать это - использовать find, как это было предложено в @Exception, или использовать:
function someFunction(dropDownObj){
var items = $("option", dropDownObj);
}
Что в основном делает то же, что и.find(). См. Этот вопрос SO для сравнения между ними (tl; dr: они в значительной степени эквивалентны).
Чтобы найти количество элементов (как вы отметили в комментариях), вы также можете использовать:
function someFunction(dropDownObj){
var items = $("option", dropDownObj).length;
}
Это немного короче решения, которое вы разместили в комментариях.
Следует также отметить, что поскольку
dropDownObj= $("#scenario_select");
Это уже объект jQuery, и вам не нужно его обертывать с помощью $. Имея это в виду, вы решаете:
var items = dropDownObj.children('option').length;
Это должно сработать.
var dropDownObj = $('#yourDropDownID');
dropDownObj.find('option')
prop
вместо использованияfind
?