Я пытаюсь нажать все выбранные элементы, начиная с определенного идентификатора или имени, и пробовал следующее, но, похоже, это не работает:
var IDs = [];
$("#dynamic_field [id^='product_id']").find("select").each(function(){ IDs.push(this.id); });
alert(IDs.length);
Если я не укажу конкретный идентификатор выбора или имя, оно работает:
var IDs = [];
$("#dynamic_field").find("select").each(function(){ IDs.push(this.id); });
alert(IDs.length);
Любая помощь, пожалуйста.
Вы пытаетесь получить тег select
внутри тега select
, удалите часть поиска, поскольку она уже содержит набор тегов select
(при условии, что элементы с префиксом идентификатора product_id
являются выбранными тегами). Если есть другие элементы с префиксом идентификатора product_id
, то объедините select
с атрибутом, начинающимся с селектора.
var IDs = [];
$("#dynamic_field select[id^='product_id']").each(function(){ IDs.push(this.id); });
alert(IDs.length);
map()
method to generate the array where use get()
method to convert jQuery collection to array.
var IDs = $("#dynamic_field select[id^='product_id']").map(function(){ return this.id; }).get();
или используя метод jQuery.map
.
var IDs = $.map($("#dynamic_field select[id^='product_id']"), ele => ele.id);