2016-05-31 75 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对象。它只是返回一个新的字符串。