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']")
添加回答
舉報