Замена текста jQuery методом replace

172
25 октября 2021, 21:30

Кто подскажет, почему это не работает?

window.onload = function() { 
  $('td').text().replace('1', 'Да'); 
}
<script src="http://code.jquery.com/jquery-1.8.3.js"></script> 
 
<table> 
  <tr> 
    <td>1</td> 
    <td>0</td> 
    <td>0</td> 
  </tr> 
</table>

Answer 1

У вас здесь две проблемы:

  1. $('td') - возвращает коллекцию элементов, т.е. их несколько и соотвественно, надо каждый элемент обрабатывать отдельно в данном случае.
  2. Результат выполнения replace никуда не присваивается, он просто пропадает.

window.onload = function() { 
  $('td').each((i, el) => { // проходим по каждому элементу массива 
    const $el = $(el); 
    const replacedText = $el.text().replace('1', 'Да'); // заменяем значения 
    $el.text(replacedText); // устанавливаем новое значение 
  }); 
}
<script src="https://code.jquery.com/jquery-1.8.3.js"></script> 
 
<table> 
  <tr> 
    <td>1</td> 
    <td>0</td> 
    <td>0</td> 
  </tr> 
</table>

READ ALSO
Как грамотно реализовать код чистыми функциями?

Как грамотно реализовать код чистыми функциями?

Нужно вывести узел с макс/мин значением

152
Почему не работает тернарное условие?

Почему не работает тернарное условие?

Я ожидаю что когда массив пустой он будет показывать Hello worldНо он этого не делает

186
Блок стрелка с использованием SVG

Блок стрелка с использованием SVG

Мне нужно нарисовать красивую заштрихованную стрелку блока, используя SVG из одной точки (x0, y0) в другую (x1, y1), как показано на рисунке

111
Как получить все блоки?

Как получить все блоки?

Есть разметка вида:

209