替换原型属性迭代中的函数

时间:2016-05-31 11:28:30

标签: javascript arrays prototypejs

我正在尝试替换所有属性中的连字符

<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 个答案:

答案 0 :(得分:1)

String.prototype.replace()返回一个新的String,它不会改变原始的String。只是确定新的价值,你就完成了。

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

引自MDN文档:

  

此方法不会更改调用它的String对象。它只返回一个新字符串。