2010-07-13 5 views
1

que je fais quelque chose comme:JavaScript remplacer

<p>SQL</p> 
<p>sql</p> 
<p>sQl</p> 
<p>SqL</p> 
<script type="text/javascript"> 
var ps = document.getElementsByTagName('p'); 

for(var i = 0; i < ps.length; i++) { 
var p = ps[i]; 
p.childNodes[0].nodeValue.replace(/sql/gi, 'VB.NET'); 
p = null; 
} 
</script> 

Mais ce n'est pas remplacer le texte. Qu'est-ce qui ne va pas? Merci.

+0

Il fonctionne, mais vous n'êtes pas le réglage de la valeur à quoi que ce soit. – BrunoLM

Répondre

4

remplacer est pas une méthode de mutateur.

el.nodeValue = el.nodeValue.replace(/regex/,'something'); 

l'utiliser comme si ...

remember to google.. surprise!

+0

ok, merci! problème résolu! – thomas

+0

@thomas: Hey, votre question est déjà classé 4 sur Google avec les termes de recherche de meder ;-) – Boldewyn

0

essayer

p.childNodes[0].nodeValue = p.childNodes[0].nodeValue.replace(/sql/gi, 'VB.NET'); 

ou

p.innerHTML = p.innerHTML.replace(/sql/gi, 'VB.NET'); 
+0

Attention avec l'utilisation de innerHTML car il ne fait toujours pas officiellement partie de la dom (bien qu'il devrait). – gnome

0

Vous n'êtes pas déléguant l'remplacement retour dans le p élément.

Rappelez-vous également que alert est votre ami. Voyez ce qu'il y a dans p.childNodes[0].nodeValue.

0

Essayez ceci p.childNodes [0] .nodeValue = p.childNodes [0] .nodeValue.replace (/ sql/gi, 'VB.NET');

0

Je crois remplacer, ici, retourne simplement la valeur (ça fait longtemps).

Avez-vous essayé:

p.childNodes[0].nodeValue = p.childNodes[0].nodeValue.replace(/sql/gi, 'VB.NET'); 
0

Je tirerais que sur en fonction dans la tête des documents, puis appeler la méthode avant la balise de corps de fermeture. Cela garantira que le document journaux avant les js exécute:

// head 
<script type='text/javasript'> 
function changeText() { 
var ps = document.getElementsByTagName('p'); 
for(var i = 0; i<ps.length; i++) { 
var node = ps[i].childNodes[0].nodeValue.toLowerCase(); 
node = node.replace('sql', 'VB.NET'); 
ps[i].childeNodes[0].nodeValue = node; 
} 
} 
</script> 
// Before the closing body tag 
<script type='text/javascript'>changeText();</script> 

Vous pouvez aussi en utilisant jQuery, voici une recherche/remplacement approche, Find & replace jquery