2016-05-31 2 views
0

Je suis en train de remplacer un trait d'union dans tous les attributsfonction Remplacer dans les attributs prototype itération

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

comme ceci:

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

ne peux pas comprendre tout à fait pourquoi il n'est pas remplacer en fait le trait d'union avec un trait de soulignement. Est-ce que je manque quelque chose? Renvoie une nouvelle chaîne, elle ne modifie pas la chaîne originale.

Répondre

1

String.prototype.replace() Juste assing la nouvelle valeur et vous avez terminé.

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

Cité de la documentation MDN:

Cette méthode ne change pas l'objet String il est appelé. Il retourne simplement une nouvelle chaîne.