JavaScript заменить - PullRequest
       16

JavaScript заменить

1 голос
/ 13 июля 2010

Я делаю что-то вроде:

<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>

Но это не замена текста. В чем дело? Спасибо.

Ответы [ 6 ]

4 голосов
/ 13 июля 2010

replace это not метод мутатора.

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

используйте это так, как ...

0 голосов
/ 13 июля 2010

Я бы извлек это в функцию в заголовке документа, затем вызвал бы метод перед закрывающим тегом тела.Это обеспечит ведение журнала документа перед выполнением js:

// 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>

Вы также можете использовать jQuery, вот подход поиска / замены, Поиск и замена jquery

0 голосов
/ 13 июля 2010

Я считаю, что замена здесь просто возвращает значение (это было давно).

Вы пробовали:

p.childNodes[0].nodeValue = p.childNodes[0].nodeValue.replace(/sql/gi, 'VB.NET');
0 голосов
/ 13 июля 2010

Попробуйте это p.childNodes [0] .nodeValue = p.childNodes [0] .nodeValue.replace (/ sql / gi, 'VB.NET');

0 голосов
/ 13 июля 2010

Вы не назначаете замену обратно элементу p.

Также помните, что alert - ваш друг.Посмотрите, что в p.childNodes[0].nodeValue.

0 голосов
/ 13 июля 2010

попробуй

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

или

p.innerHTML = p.innerHTML.replace(/sql/gi, 'VB.NET');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...