2 回答

TA贡献1818条经验 获得超8个赞
您可以replace
在再次添加到空对象之前使用。您也不需要Array.From
在您datafeilds
的querySelectorAll中使用默认情况下返回nodes
数组中的所有内容。
运行下面的代码片段以查看它是否正常工作并全部替换。
function addproduct() {
var datafeilds = document.querySelectorAll("[id^='add-product-']")
var data = {};
datafeilds.forEach(function(field) {
//replace all add-products with ""
var replace = field.id.replace("add-product-", "");
//Push to data {}
data[replace] = field.value
});
console.log(data)
}
addproduct()
<input id='add-product-name' value="1" />
<input id='add-product-overlay1' value="1" />
<input id='add-product-overlay2' value="1" />
<input id='add-product-wholesale_price' value="1" />
<input id='add-product-delivery_price' value="1" />

TA贡献1827条经验 获得超9个赞
您的数据对象为空,因此访问其上的 field.id 属性将返回未定义。所以你得到了上面的错误。
关于前缀ID,您可以通过制作document.querySelectorAll("input[id^='prefixvalue']")
添加回答
举报