JS (jquery) заменить ID на ЗНАЧЕНИЕ (из словаря)
Код на сайте (в разделах цифры 201399 разные, приставки и окончания к id могу добавить без спец символов, задать class для td не могу)
<td>id:201399</td>
Файл на другом сайте name.text (есть возможность выходные данные в нужном виде отдать или сгенерировать сам script.js с уже встроенным словарем и его подключить на сайт), на Python вытягиваю через API с другого сайта и записываю в файл.
ID | оценка
201399|3.69343
873053|3.80098
753375|3.77029
830159|3.37478
На сайте подключен ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js
Как с помощью js заменить
<td>id:201399</td>
на советующую оценку из файла(словаря) 201399 | 3.69343
<td>3.69343</td>
или, если искомого ID нет на текст
<td>Оценки нет</td>
Если такой строки вообще нет - соотв. ничего не нужно. Пробовал готовые решения, конкретный текст получается менять, а подружить все вместе не выходит.
Код таблицы:
<div class="detail-parameters-wrapper">
<table class="detail-parameters second">
<tr>
<th>
<span class="row-header-label">
Param<span class="row-header-label-colon">:</span>
</span>
</th>
<td>text text text text text text</td>
</tr>
<tr>
<th>
<span class="row-header-label">
Param<span class="row-header-label-colon">:</span>
</span>
</th>
<td> text text text text text</td>
</tr>
<tr>
<th>
<span class="row-header-label">
Rate<span class="row-header-label-colon">:</span>
</span>
</th>
<td>id:201399</td>
</tr>
</table>
Ответы (1 шт):
const a = JSON.parse('{"201399":3.69343,"873053":3.80098,"753375":3.77029,"830159":3.37478}');
const tables = document.querySelectorAll('.detail-parameters.second'); // привязка к таблице
tables.forEach(table => {
const td = table.querySelectorAll('td');
td.forEach(element => {
const id = element.innerText.match(/^id.*?(\d+)/)?.[1];
if (id) {
element.innerText = a[ id ] ? a[ id ] : 'Оценки нет';
}
});
});
<div class="detail-parameters-wrapper">
<table class="detail-parameters second">
<tr>
<th>
<span class="row-header-label">
Param<span class="row-header-label-colon">:</span>
</span>
</th>
<td>text text text text text text</td>
</tr>
<tr>
<th>
<span class="row-header-label">
Param<span class="row-header-label-colon">:</span>
</span>
</th>
<td> text text text text text</td>
</tr>
<tr>
<th>
<span class="row-header-label">
Rate<span class="row-header-label-colon">:</span>
</span>
</th>
<td>id:201399</td>
</tr>
</table>