Найти все поля выбора с идентификатором или именем, начинающимся с определенной строки

Я пытаюсь нажать все выбранные элементы, начиная с определенного идентификатора или имени, и пробовал следующее, но, похоже, это не работает:

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);

Любая помощь, пожалуйста.

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы пытаетесь получить тег 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);


You can use jQuery 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);

Другие вопросы по теме