查找具有以特定字符串开头的ID或名称的所有选择框

时间:2019-04-08 15:05:54

标签: jquery

我试图推送所有以特定ID或名称开头的选择元素,并尝试了以下操作,但似乎不起作用:

var IDs = [];
$("#dynamic_field [id^='product_id']").find("select").each(function(){ IDs.push(this.id); });
alert(IDs.length);

如果我不指定特定的选择ID或名称,它会起作用:

var IDs = [];
$("#dynamic_field").find("select").each(function(){ IDs.push(this.id); });
    alert(IDs.length);

请帮忙。

1 个答案:

答案 0 :(得分:3)

您正尝试在select标记中获取select标记,请删除查找部分,因为该部分已经包含select标记的集合(假设ID前缀为product_id的元素是选择标签)。如果还有其他具有ID前缀product_id的元素,则将select与以选择器开头的属性组合。

var IDs = [];
$("#dynamic_field select[id^='product_id']").each(function(){ IDs.push(this.id); });
alert(IDs.length);


您可以使用jQuery map()方法生成数组,而使用get()方法将jQuery集合转换为数组。

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