Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
125 / 120 / 18
Регистрация: 05.08.2021
Сообщений: 528

Динамическое создание разметки HTML на Javascript

25.12.2025, 19:21. Показов 1033. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если код опять "индусский", то что не так и что исправить? Требуемые 0000 0000 0000 0000 впрочем получились..
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let a = 30;
let div = document.createElement('div');
document.body.appendChild(div);
const f = intend => {   
    let newDiv = document.createElement('div');
    div.appendChild(newDiv);
    newDiv.style.position = 'absolute';
    newDiv.style.marginLeft = intend.toString() + 'px'; 
    for (var i = 0; i < 4; i++) {           
        let sp = document.createElement('span');            
        sp.innerHTML = '0';         
        newDiv.appendChild(sp);
    }
}
for (var k = 0; k < 4; k++) {
    f(a);
    a += 50;
}
Ибо говорят...
HTML5
1
2
3
4
5
6
<div id='1' class="sp2 m1">
       <span>0</span>
       <span>0</span>
       <span>0</span>
       <span>0</span>
   </div>
...голимый копипаст - индуский стиль...(с)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2025, 19:21
Ответы с готовыми решениями:

Динамическое создание нового html документа (javascript)
нужно создать документ index.html, где по нажатию на кнопку создаётся новый HTML-документ, в...

Загрузка html-разметки в переменную
Есть такая функция у Jquery .load(), которая может загружать с удалённой страницы часть кода и...

Ввод html разметки в текстовое поле
У меня есть страница с текстовым полем. Мне нужно в текстовом поле создать разметку для страницы и...

16
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
25.12.2025, 19:38
Zloyalex100, не ленись использовать const. Так будет сразу понятно, что значение переменной менять не будут.

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
2
newDiv.style.position = 'absolute';
newDiv.style.marginLeft = intend.toString() + 'px';
Стилизацию оставь в css...

Если создал элемент - доделай его до конца. И только после всего этого добавляй куда нужно.
Так буде понятно что же ты в итоге делал. Не нужно по всему коду гадать.

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
sp.innerHTML = '0';
Вот так
JavaScript
1
sp.textContent = 0;
Там нет тегов. И строка не обязательна...

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
newDiv.style.marginLeft = intend.toString() + 'px';
Пока стили явно не твое...

Добавлено через 1 минуту
P.S.
Не используй цифровые ИД. Дичь какая-то...

Добавлено через 2 минуты
Ну и как подкол небольшой...
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
2
3
4
for (var k = 0; k < 4; k++) {
    f(a);
    a += 50;
}
Тут значит функцию написал...

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
2
3
4
5
for (var i = 0; i < 4; i++) {           
        let sp = document.createElement('span');            
        sp.innerHTML = '0';         
        newDiv.appendChild(sp);
}
А тут заленился?
1
125 / 120 / 18
Регистрация: 05.08.2021
Сообщений: 528
25.12.2025, 19:49  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
sp.textContent = 0;
textContent как известно раньше не работал в каких-то браузерах. Вроде в Мозилле-торизилле. Или нет... Сейчас конечно уже давно не так но от этого так и не отвык

Добавлено через 8 минут
Цитата Сообщение от krvsa Посмотреть сообщение
Пока стили явно не твое
newDiv.style.marginLeft = intend.toString() + 'px';
Мне всегда казалось что там строкой надо... Типа там "50px"... Чтобы было указание на пиксели
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
25.12.2025, 19:54
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
textContent как известно раньше не работал в каких-то браузерах.
Мы работаем сейчас.

Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Мне всегда казалось что там строкой надо... Типа там "50px"... Чтобы было указание на пиксели
Бивас, тест! (с)

JavaScript
1
alert(5 + 'px')
Но дело даже не в этом...
Ты опять занимаешься какой-то "подгонкой", а не стилизацией, какой она должна быть.
Мало того!
У тебя
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
newDiv.style.position = 'absolute';
А "двигаешь" ты его отступами.
И так каждый элемент...
0
125 / 120 / 18
Регистрация: 05.08.2021
Сообщений: 528
25.12.2025, 19:57  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
alert(5 + 'px')
А, да... Конкатенация числа и строки дает строку... Забыл-забыл... Склероз замучил
0
25.12.2025, 19:58

Не по теме:

Цитата Сообщение от krvsa Посмотреть сообщение
А "двигаешь" ты его отступами.
10 лет назад так делали, чё пристал!

0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
25.12.2025, 20:12
Цитата Сообщение от gogolik Посмотреть сообщение
10 лет назад так делали, чё пристал!
Не делал я так!
Не делал!

Добавлено через 10 минут
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
2
3
4
5
for (var i = 0; i < 4; i++) {           
        let sp = document.createElement('span');            
        sp.innerHTML = '0';         
        newDiv.appendChild(sp);
}
Для любителей innerHTML...
Аналог.

JavaScript
1
2
3
const newDiv = document.createElement('div');
newDiv.innerHTML = Array(5).fill('<span>0</span>').join('')
div.appendChild(newDiv);
Добавлено через 39 секунд
Zloyalex100, и это все так же 10-тые стайл!
1
125 / 120 / 18
Регистрация: 05.08.2021
Сообщений: 528
25.12.2025, 20:18  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Array(5).fill
Ну, про fill знаю, да... Был уже в те времена и он...
0
67 / 64 / 17
Регистрация: 29.02.2016
Сообщений: 313
26.12.2025, 01:06
А HTMLTemplateElement 10 лет назад уже появился?
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3970 / 2092 / 832
Регистрация: 13.03.2010
Сообщений: 6,892
26.12.2025, 01:15
stele, да.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
26.12.2025, 09:04
Цитата Сообщение от stele Посмотреть сообщение
А HTMLTemplateElement 10 лет назад уже появился?
Алиса говорит
Элемент HTMLTemplateElement доступен в браузерах с ноября 2015 года.
Но его я применил в примере уже как современное решение.
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
26.12.2025, 15:51
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let a = 30;
let div = document.createElement('div');
document.body.appendChild(div);
const f = intend => {   
    let newDiv = document.createElement('div');
    div.appendChild(newDiv);
    newDiv.style.position = 'absolute';
    newDiv.style.marginLeft = intend.toString() + 'px'; 
    for (var i = 0; i < 4; i++) {           
        let sp = document.createElement('span');            
        sp.innerHTML = '0';         
        newDiv.appendChild(sp);
    }
}
for (var k = 0; k < 4; k++) {
    f(a);
    a += 50;
}
Я тоже не понимаю, зачем это все.) По мне так с html лучше.
0
 Аватар для voraa
1289 / 1262 / 187
Регистрация: 21.01.2024
Сообщений: 5,804
26.12.2025, 17:29
Цитата Сообщение от krvsa Посмотреть сообщение
Элемент HTMLTemplateElement доступен в браузерах с ноября 2015 года.
Ну да. Это когда осел сдох. А в браузерах он раньше появился - в 2013 в Хроме и Мозиле, в 2014 в Сафари.
Так кэнайюз говорит.

Добавлено через 27 минут
Цитата Сообщение от sad67man Посмотреть сообщение
Я тоже не понимаю, зачем это все.) По мне так с html лучше.
Ну иногда всякое приходится делать. Например html не доступен (сервером генерится), а надо скриптом его поправить, что то новое внести. А серверный скрипт правит тоже не всегда удобно. К тому же изменения могут быть динамическими. Вот и приходится dom крушить и перестраивать.
Но даже в этом случае innerHTML (и подобное - последнее, что надо делать).
Да и последовательность должна быть другая. Сначала полностью создать элемент, со всеми дочерними, атрибутами, стлями, а только потом вставлять.

Как то так я бы сделал
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
let a = 30;
 
let newDiv = document.createElement('div');
newDiv.style.position = 'absolute';
 
let sp = document.createElement('span');
sp.textContend = '0';  
let sp4 = Array(4).map (_ => sp.cloneNode(true));
newDiv.append(...sp4);
 
let newDiv4 = Array(4).map ((_, i)=> {
        const nd = newDiv.cloneNode(true);
        nd.style.marginLeft = (30 + 50 * i) + 'px';
        return nd;
    });
    
let div = document.createElement('div');
div.append (...newDiv4);
 
document.body.append(div);
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
26.12.2025, 21:32
Цитата Сообщение от sad67man Посмотреть сообщение
Я тоже не понимаю, зачем это все.) По мне так с html лучше.
Был такой мультик про мартышку, слоненка, удава и попугая... Они там вычисляли когда орехов будет куча... :
Так и выбор "скрипт" или "голимый текст". На каком-то количестве повторений желательно таки использовать скрипт.
Миниатюры
Динамическое создание разметки HTML на Javascript  
0
125 / 120 / 18
Регистрация: 05.08.2021
Сообщений: 528
26.12.2025, 22:15  [ТС]
Ох ты кстати... Отступ-то по-английски indent, а не intend....
Такое даже индусы вряд ли допустят, у них там английский язык чуть ли не один из государственных.
Intend это "намереваться".
Но будем считать что имел в виду что "намеревался сделать отступ"
0
125 / 120 / 18
Регистрация: 05.08.2021
Сообщений: 528
28.12.2025, 17:28  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Это когда осел сдох
Что за осел? Из "ослов" тех времен помню только что какой-то Mule был тогда... То ли файлообменник, то ли что-то типа торрента...
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3844 / 1699 / 431
Регистрация: 14.03.2022
Сообщений: 4,343
29.12.2025, 09:42
Цитата Сообщение от Zloyalex100 Посмотреть сообщение
Что за осел?
IE - Internet Explorer

В шутку или издевательство интерпретировалось как звуки осла или ишака - "и-а, и-а"...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2025, 09:42
Помогаю со студенческими работами здесь

Ошибки разметки html .От чего происходит горизонтальный scroll
Сайт tender-dalan.ru, в пункте меню http://tender-dalan.ru/obuchenie-torgam/ есть горизонтальный...

Как сделать редактор HTML-разметки в браузере.
нужно сделать как на видео: Но вот что у меня получилось в коде js let...

Динамическое создание объектов JavaScript
Всем здрасьте. Подскажите, пожалуйста, кто может, какое можно придумать решение. Цель следующая:...

Код javascript для создания теста, используя html form и javascript
Привет, собственно, вот, в чём вопрос. У меня есть форма html: &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt;...

Динамическое создание html
есть необходимость создать (или изменить) контент страницы сама разметка передается (в готовом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru