亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 forEach 替換部分字符串?

使用 forEach 替換部分字符串?

POPMUISE 2022-12-09 15:40:32
我有標有前綴“add-product-”的輸入框 ID,我想用任何東西替換“add-product-”。所以我嘗試使用data[field.id].replace("add-product-", "");但它給了我錯誤:[Error] TypeError: undefined is not an object (evaluating 'data[field.id].replace')這是我的代碼:function addproduct(){    var datafeilds = Array.from(document.querySelectorAll("[id^='add-product-']"));    var data = {};    datafeilds.forEach(function(field){        data[field.id].replace("add-product-", "");        data[field.id] = field.value;    });    console.log(data);}輸出是:[Log] {add-product-name: "", add-product-overlay1: "", add-product-overlay2: "", add-product-wholesale_price: "", add-product-delivery_price: "", …}我希望它是:[Log] {name: "", overlay1: "", overlay2: "", wholesale_price: "", delivery_price: "", …}
查看完整描述

2 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

您可以replace在再次添加到空對象之前使用。您也不需要Array.From在您datafeildsquerySelectorAll中使用默認情況下返回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" />


查看完整回答
反對 回復 2022-12-09
?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

您的數據對象為空,因此訪問其上的 field.id 屬性將返回未定義。所以你得到了上面的錯誤。

關于前綴ID,您可以通過制作document.querySelectorAll("input[id^='prefixvalue']")


查看完整回答
反對 回復 2022-12-09
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號