Javascript 将值从数据属性获取到数组中

Javascript 将值从数据属性获取到数组中,javascript,jquery,html,Javascript,Jquery,Html,我试图在提交时从不同div的数据属性(数据价格)中获取值,并将其放入数组中,但无法使其工作 var item_arr=new Array(); $('input[name^=“item_price”]”)。每个(函数(){ var MyVar=$(this.data('price'); 预警(MyVar); 项目到货推送(MyVar); }); 控制台日志(项目_arr) 只需将输入[name^=“item_price”]更改为div[name^=“item_price[]”。 请参阅下面的工

我试图在提交时从不同div的数据属性(数据价格)中获取值,并将其放入数组中,但无法使其工作

var item_arr=new Array();
$('input[name^=“item_price”]”)。每个(函数(){
var MyVar=$(this.data('price');
预警(MyVar);
项目到货推送(MyVar);
});
控制台日志(项目_arr)

只需将
输入[name^=“item_price”]
更改为
div[name^=“item_price[]”
。 请参阅下面的工作代码-

var item_arr=new Array();
$('div[name=“item_price[]”“])。每个(函数(){
var MyVar=$(this.data('price');
项目到货推送(MyVar);
});
控制台日志(项目_arr)

您的主要问题是选择器:
输入[name^=“item_price”]

您有
input
而不是
div
,因为您的元素标记是type

将其更改为:
div[name^=“item\u price”]


替代jQuery方法 可以映射每个元素的数据值并返回本机数组

/**jQuery插件*/
(($) => {
/**
*返回选定元素的数据值数组。
*@param{string}dataKey数据属性键
*@param{function}convertFn用于转换原始值的后处理函数
*@return返回已处理数据值的数组
*/
$.fn.dataArray=函数(dataKey,convertFn){
返回这个.map((i,el)=>((v)=>convertFn?convertFn(v):v)($(el.data(dataKey))).toArray();
}
})(jQuery);
console.log($('div[name^=“item_price”]).dataArray('price',parseInt))
.as控制台包装{top:0;最大高度:100%!重要;}


您试图选择
s,但您的选择器字符串以
input
开头,为什么我的答案被否决?