Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Повторяющийся код в Html файле (https://javascript.ru/forum/dom-window/83488-povtoryayushhijjsya-kod-v-html-fajjle.html)

Levvarrr 21.12.2021 15:58

Повторяющийся код в Html файле
 
Всем привет!
Я что то совсем увлекся web версткой и Html файл страницы пухнет как на дрожжах:lol:

Вот в чем вопрос:
У меня на страницы штук 10 выпадающих списков на элементе (select)
<select id="940">
<option value=0>Нет</option>
<option value=10>Датчик1 - 0 с&#176</option>
<option value=15>Датчик1 - 5 с&#176</option>
<option value=110>Датчик1 - 10 с&#176</option>
<option value=115>Датчик1 - 15 с&#176</option>
<option value=120>Датчик1 - 20 с&#176</option>
<option value=125>Датчик1 - 25 с&#176</option>
<option value=130>Датчик1 - 30 с&#176</option>
<option value=135>Датчик1 - 35 с&#176</option>
<option value=140>Датчик1 - 40 с&#176</option>
<option value=20>Датчик2 - 0 с&#176</option>
<option value=25>Датчик2 - 5 с&#176</option>
<option value=210>Датчик2 - 10 с&#176</option>
<option value=215>Датчик2 - 15 с&#176</option>
<option value=220>Датчик2 - 20 с&#176</option>
<option value=225>Датчик2 - 25 с&#176</option>
<option value=230>Датчик2 - 30 с&#176</option>
<option value=235>Датчик2 - 35 с&#176</option>
<option value=240>Датчик2 - 40 с&#176</option>
</select>

Меняется только ID элемента.
Скажите пожалуйста можно как то упростить написание?

Например все (option) вынести в отдельный файл (или в файл JS). А потом как то вставить.

Мои поиски и попытки:
1) Хотел вставить внутри (select) div и id, но они не ищутся в JS
2) Нашел информацию про html-импорт Но мне не понятно как указать точку в документе куда вставлять.....

ksa 21.12.2021 16:42

Levvarrr, если так расперло с оптимизацией написания html - можно начать пользоваться шаблонизаторами...
Например pug
https://zaurmag.ru/html5-css3/html-p...108 610901099

voraa 21.12.2021 17:03

Цитата:

Сообщение от Levvarrr
Хотел вставить внутри (select) div и id,

Чего куда вставить?

В html пишите
<template id="tmpsel">
<select id="940">
<option value=0>Нет</option>
<option value=10>Датчик1 - 0 с&#176</option>
<option value=15>Датчик1 - 5 с&#176</option>
<option value=110>Датчик1 - 10 с&#176</option>
<option value=115>Датчик1 - 15 с&#176</option>
<option value=120>Датчик1 - 20 с&#176</option>
<option value=125>Датчик1 - 25 с&#176</option>
<option value=130>Датчик1 - 30 с&#176</option>
<option value=135>Датчик1 - 35 с&#176</option>
<option value=140>Датчик1 - 40 с&#176</option>
<option value=20>Датчик2 - 0 с&#176</option>
<option value=25>Датчик2 - 5 с&#176</option>
<option value=210>Датчик2 - 10 с&#176</option>
<option value=215>Датчик2 - 15 с&#176</option>
<option value=220>Датчик2 - 20 с&#176</option>
<option value=225>Датчик2 - 25 с&#176</option>
<option value=230>Датчик2 - 30 с&#176</option>
<option value=235>Датчик2 - 35 с&#176</option>
<option value=240>Датчик2 - 40 с&#176</option>
</select>
</template>


Затем в Js

const sel1 = document.getElementById('tmpsel').content.querySelector('select').cloneNode(true);
sel1.id = 'нужный id';

const sel2 = sel1.cloneNode(true)
sel2.id = 'нужный id';
// .....


И вставляем эти select куда надо.

Levvarrr 21.12.2021 19:16

Почти заработало..... Осталось понять как вставить.
В место где нужна таблица разметил строчку <div id="Table"></div>
HTML:
<template id="tmpsel">
<select id="940">
<option value=0>Нет</option>
<option value=10>Датчик1 - 0 с&#176</option>
<option value=15>Датчик1 - 5 с&#176</option>
</select>
</template>                 
<div id="Table"></div>

Но вместо таблицы появляется надпись [object HTMLSelectElement]
В файле JS написал так:
let sel1 = document.getElementById('tmpsel').content.querySelector('select').cloneNode(true);
sel1.id = "1234";
document.getElementById("Table").innerHTML=sel1;

рони 21.12.2021 19:34

Levvarrr,
места это class, а не id!!!
и делайте макет, если что-то пошло не так?
например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 21.12.2021 20:14

Цитата:

Сообщение от Levvarrr
.innerHTML=sel1;

.append(sel1)

Levvarrr 21.12.2021 20:45

Большое спасибо!
Получилось!


Часовой пояс GMT +3, время: 09:07.