2016-05-31 78 views
0

我試圖取代一個連字符中的所有屬性替換函數原型屬性迭代

<a href="/page" id="someId" data-country="north-america" data-state="north-dakota">North Dakota</a> 

像這樣:

var el = document.getElementById('someId'); 
Array.prototype.slice.call(el.attributes).forEach(function(item) { 
    item.value.replace('-','_'); 
    console.log(item.value); 
}); 

不能完全弄清楚爲什麼它實際上沒有與替換連字符下劃線。我錯過了什麼嗎?

回答

1

String.prototype.replace()返回一個新的String,它不會改變原來的String。只要嶄新的價值,你就完成了。

item.value = item.value.replace('-','_'); 

從MDN文件引用:

此方法不改變它被稱爲在String對象。它只是返回一個新的字符串。