Создайте пустой элемент с помощью createElement DOM

Проблема в том, что я хочу динамически создавать файл svg с помощью JavaScript. Но при рисовании контура он не отображается на экране (последние 2 ~ 3 часа я ищу проблему) ... И вот оно ... при создании элемента с помощью document.createElement мы получаем <element> </element>. Но элемент пути должен быть создан как пустой элемент - <path .../>. Так. Как я могу создавать пустые элементы с помощью document.createElement? Или, может быть, я не могу этого сделать с document.createElement и для этого мне нужно использовать JQuery?

let b1b2 = document.createElement('path');
b1b2.setAttribute('d', 'M0 0 L100 100');
b1b2.setAttribute('fill', 'none');
b1b2.setAttribute('stroke', 'red');
b1b2.setAttribute('stroke-width', '5');

<path d = "M0 0 L100 100" fill = "none" stroke = "red" stroke-width = "5"></path>

что не так с тем, что у вас? вам может понадобиться пространство имен svg, чтобы оно отображалось правильно.

dandavis 11.05.2018 22:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
1 016
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У SVG есть особые требования к пространству имен. Вам нужно использовать document.createElementNS:

document.createElementNS('http://www.w3.org/2000/svg', 'path');

Пример:

let b1b2 = document.createElementNS('http://www.w3.org/2000/svg', 'path');

b1b2.setAttribute('d', 'M0 0 L100 100');
b1b2.setAttribute('fill', 'none');
b1b2.setAttribute('stroke', 'red');
b1b2.setAttribute('stroke-width', '5');

document.getElementById('svg').appendChild(b1b2);
<svg id = "svg"></svg>

Думаю, вы, наверное, тоже захотите использовать Element.setAttributeNS().

Peter Collingridge 11.05.2018 23:23

При использовании .createElementNS(...) только на path я получаю ту же проблему. Но. Когда я использую его и на svg, все работает отлично. Спасибо за ваш ответ :)

Ruben Kostandyan 12.05.2018 05:47

Другие вопросы по теме