2015-03-10 2 views
-1

Я использую следующий код, чтобы изменить текст на странице. он работает отлично, но он меняет только одно слово. Когда я хочу изменить целое предложение, код дает ошибку. Можете ли вы мне помочь? Я не очень хорошо разбираюсь в javascript/jquery. Благодарю.Как сменить текст, используя jquery/javascript

$(document).ready(function() { 
    function recursiveReplace(node) { 
     if (node.nodeType == 3) { // text node 
      node.nodeValue = node.nodeValue.replace("1d", "1 day"); 
      node.nodeValue = node.nodeValue.replace("2d", "2 days"); 
      node.nodeValue = node.nodeValue.replace("will expire in Unlimited", "will not expire"); 
      return; 
     } 

     if (node.nodeType == 1) { // element 
      $(node).contents().each(function() { 
       recursiveReplace(this); 
      }); 
     } 
    } 

    recursiveReplace(document.body); 
}); 
+0

Какая ошибка? Можете ли вы предоставить скрипку? Пример, который вы дали, отлично работает. Вы можете видеть, как он работает здесь: http://jsfiddle.net/andreortigao/2pg8vwtr/ – Andre

+0

Спасибо за ответ. См.: http://jsfiddle.net/2pg8vwtr/1/ – hijacker83

+1

Возможно, вы должны опубликовать разметку HTML в своем вопросе, только для справок в будущем. – technophobia

ответ

0

Ошибка, которую вы испытываете, связана не с словами/предложениями. Это потому, что ваш HTML имеет жирные теги вокруг слова Unlimited. Таким образом, он не смог найти строку, которую соответствует «истекает в Unlimited». Если последняя строка вашего HTML выглядит следующим образом:

<span>1d 2d will expire in Unlimited</span> 

Я не знаю, что вы хотите, чтобы конечный результат будет, но эта скрипка заменяет всю строку: http://jsfiddle.net/2pg8vwtr/2/

Good Luck.

+0

привет! текст не является статичным, и это повторяется как 100 раз, например, 1 день, 2 дня, 3 дня, без ограничений ... Я не могу удалить жирный тег. Разве это невозможно решить, не удаляя жирный тег? – hijacker83

Смежные вопросы