22.01.2021, 12:27
|
Аспирант
|
|
Регистрация: 19.09.2018
Сообщений: 60
|
|
Добавить класс к таблице но не ко всем td
Здравствуйте уважаемые форумчане!
Ищу скрипт который добавит класс notranslate к определенным столбцам, если такой существует. Так как google переводчик сайта, переводит в таблице цифры, и чтобы он не переводил, нужно добавить класс, а вручную добавлять это слишком долго(
Есть редактор ckeditor 4 я копирую в него html таблицу. Там всего три колонки и N-строк. Необходимо добавить класс в 2 и 3 колонку во все строки этих колонок начиная с второго номера строки. То есть, в 2 и 3 колонки необходимо пропустить шапку.
Я искал такой скрипт, потом искал что-то похожее. Но все четно, может и находил но не понял что это именно он.
Скажите пожалуйста, такой скрипт существует?
Может есть у кого-то?
Заранее большое спасибо!
|
|
22.01.2021, 12:45
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,797
|
|
Ну переводит и пусть переводит, в чем проблема-то?
Написать скрипт, который проставляет определенный класс определенным элементам таблицы - не проблема. Проблема в том, что вам нужно модифицировать разметку в визуальном редакторе.
Если операция разовая, то можно её провести в полуавтоматическом режиме (ручками куда-то что-то копировать, а классы проставлять скриптом). Иначе нужно писать плагин для WYSIWYG.
|
|
22.01.2021, 13:06
|
Аспирант
|
|
Регистрация: 19.09.2018
Сообщений: 60
|
|
Сообщение от Nexus
|
Ну переводит и пусть переводит, в чем проблема-то?
Написать скрипт, который проставляет определенный класс определенным элементам таблицы - не проблема. Проблема в том, что вам нужно модифицировать разметку в визуальном редакторе.
Если операция разовая, то можно её провести в полуавтоматическом режиме (ручками куда-то что-то копировать, а классы проставлять скриптом). Иначе нужно писать плагин для WYSIWYG.
|
Я таблицу копирую с сайта уже с данными, и вставляю в редактор и сохраняю, после сохранения перевожу. Это рецепты для диабетиков, но таблица некрасивая если там половина цифр а остальное прописью... Мне бы только классы проставить и все)
|
|
22.01.2021, 13:45
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,797
|
|
Alexprom, у вас точно заголовок таблицы находится в тэге tbody, не в thead?
|
|
22.01.2021, 13:47
|
Аспирант
|
|
Регистрация: 19.09.2018
Сообщений: 60
|
|
Сообщение от Nexus
|
Alexprom, у вас точно заголовок таблицы находится в тэге tbody, не в thead?
|
Вот одна из таблиц
<div class="tg-wrap"><table>
<thead>
<tr>
<th>Продукты</th>
<th>Вес (г)</th>
<th>Ккал</th>
</tr>
</thead>
<tbody>
<tr>
<td>Земляника, клубника</td>
<td>200</td>
<td>82</td>
</tr>
<tr>
<td>Молоко 2,5%</td>
<td>100</td>
<td>54</td>
</tr>
<tr>
<td>Творог, 0 %</td>
<td>500</td>
<td>400</td>
</tr>
<tr>
<td>Горький шоколад</td>
<td>50</td>
<td>270</td>
</tr>
<tr>
<td>Кофе растворимый</td>
<td>30</td>
<td>36</td>
</tr>
<tr>
<td>Банан</td>
<td>160</td>
<td>154</td>
</tr>
<tr>
<td>Итого:</td>
<td>1040</td>
<td>996</td>
</tr>
</tbody>
</table></div>
|
|
22.01.2021, 13:52
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,797
|
|
<div class="tg-wrap"><table>
<thead>
<tr>
<th>Продукты</th>
<th>Вес (г)</th>
<th>Ккал</th>
</tr>
</thead>
<tbody>
<tr>
<td>Земляника, клубника</td>
<td>200</td>
<td>82</td>
</tr>
<tr>
<td>Молоко 2,5%</td>
<td>100</td>
<td>54</td>
</tr>
<tr>
<td>Творог, 0 %</td>
<td>500</td>
<td>400</td>
</tr>
<tr>
<td>Горький шоколад</td>
<td>50</td>
<td>270</td>
</tr>
<tr>
<td>Кофе растворимый</td>
<td>30</td>
<td>36</td>
</tr>
<tr>
<td>Банан</td>
<td>160</td>
<td>154</td>
</tr>
<tr>
<td>Итого:</td>
<td>1040</td>
<td>996</td>
</tr>
</tbody>
</table></div>
<style>td {padding: 5px; background: red;}td.notranslate {background: yellow;}</style>
<script>
document.querySelectorAll('.tg-wrap tbody tr').forEach((row, rowIndex) => {
row.querySelectorAll('td').forEach((cell, cellIndex) => {
if (!cellIndex) return;
cell.classList.add('notranslate');
});
});
</script>
|
|
22.01.2021, 14:14
|
Аспирант
|
|
Регистрация: 19.09.2018
Сообщений: 60
|
|
Сообщение от Nexus
|
<div class="tg-wrap"><table>
<thead>
<tr>
<th>Продукты</th>
<th>Вес (г)</th>
<th>Ккал</th>
</tr>
</thead>
<tbody>
<tr>
<td>Земляника, клубника</td>
<td>200</td>
<td>82</td>
</tr>
<tr>
<td>Молоко 2,5%</td>
<td>100</td>
<td>54</td>
</tr>
<tr>
<td>Творог, 0 %</td>
<td>500</td>
<td>400</td>
</tr>
<tr>
<td>Горький шоколад</td>
<td>50</td>
<td>270</td>
</tr>
<tr>
<td>Кофе растворимый</td>
<td>30</td>
<td>36</td>
</tr>
<tr>
<td>Банан</td>
<td>160</td>
<td>154</td>
</tr>
<tr>
<td>Итого:</td>
<td>1040</td>
<td>996</td>
</tr>
</tbody>
</table></div>
<style>td {padding: 5px; background: red;}td.notranslate {background: yellow;}</style>
<script>
document.querySelectorAll('.tg-wrap tbody tr').forEach((row, rowIndex) => {
row.querySelectorAll('td').forEach((cell, cellIndex) => {
if (!cellIndex) return;
cell.classList.add('notranslate');
});
});
</script>
|
Да, именно то что надо, спасибо большое! К сожалению, в самом редакторе не работает. Я скопировал ваш код сразу в редактор "вставил через кнопку исходный" и потом просто скрипт отдельно подключил, он не срабатывает(
|
|
22.01.2021, 14:25
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,797
|
|
Сообщение от Alexprom
|
К сожалению, в самом редакторе не работает.
|
Сообщение от Nexus
|
Написать скрипт, который проставляет определенный класс определенным элементам таблицы - не проблема. Проблема в том, что вам нужно модифицировать разметку в визуальном редакторе.
|
Я об этом сразу написал
Попробуйте:
(() => {
const htmlString = prompt('Enter your HTML table');
if (!htmlString || !htmlString.trim().length) return;
const container = document.createElement('div');
container.innerHTML = htmlString;
container.querySelectorAll('tbody tr').forEach((row, rowIndex) => {
row.querySelectorAll('td').forEach((cell, cellIndex) => {
if (cellIndex) cell.classList.add('notranslate');
});
});
prompt('Take your prepared table', container.innerHTML);
})();
Последний раз редактировалось Nexus, 22.01.2021 в 14:27.
|
|
22.01.2021, 14:36
|
Аспирант
|
|
Регистрация: 19.09.2018
Сообщений: 60
|
|
|
|
22.01.2021, 14:40
|
Аспирант
|
|
Регистрация: 19.09.2018
Сообщений: 60
|
|
|
|
|
|