Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/23: Рейтинг темы: голосов - 23, средняя оценка - 4.96
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962

Добавление элемента внутрь тэга

22.03.2011, 19:56. Показов 4565. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Может не правильно назвал тему, ну да ладно.
Проблема вот в чем:

есть кусок HTML:
HTML5
1
2
3
4
5
    <div id="svg_canvas" style="width:600px; height:400px">
        <svg id="svg_paper" width="200" height="100" xmlns="http://www.w3.org/2000/svg">
            <rect x="50" y="40" width="100" height="30" fill="blue"/>
        </svg>
    </div>
как добавить новый элемент в тег svg c помощью javascript?
Чтобы получилось вот так:
HTML5
1
2
3
4
5
6
    <div id="svg_canvas" style="width:600px; height:400px">
        <svg id="svg_paper" width="200" height="100" xmlns="http://www.w3.org/2000/svg">
            <rect x="50" y="40" width="100" height="30" fill="blue"/>
            <rect x="70" y="60" width="100" height="30" fill="red"/>
        </svg>
    </div>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2011, 19:56
Ответы с готовыми решениями:

Изменение стиля тэга Select после выбора элемента списка?
Всем привет, друзья, подскажите пожалуйста, хочу неким образом изменить выпадающий список, собственно как сделать так, что бы при выборе...

Добавление функции внутрь другой функции
Привет всем! Делаю адаптивную верстку на сайте. Есть проверки в jQuery, например: function catCols() { var bodyWidth =...

Добавление тэга select на canvas
Как добавить тэг select на canvas, разумеется с пунктами option и чтобы их можно было выбирать и при выборе срабатывало действия как при...

8
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
22.03.2011, 22:22
Я бы сделал так:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
    <head>
        <title>tAddIH.html</title>
        <script>
        function fnOC()
        {
            var oi;
            
            oi=document.getElementById('svg_paper');
            oi.innerHTML+='<rect x="70" y="60" width="100" height="30" fill="red"/>';
        }
        </script>
    </head>
    <body>
    <div id="svg_canvas" style="width:600px; height:400px">
        <svg id="svg_paper" width="200" height="100" xmlns="http://www.w3.org/2000/svg">
            <rect x="50" y="40" width="100" height="30" fill="blue"/>
        </svg>
    </div>
        <input type='button' value='Add' onClick='fnOC();'/>
    </body>
</html>
1
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
22.03.2011, 23:02  [ТС]
skaa, не срабатывает...
0
Хочу в Исландию
 Аватар для skaa
1041 / 840 / 119
Регистрация: 10.11.2010
Сообщений: 1,630
23.03.2011, 00:20
У меня тоже не сработало потому что я не знаю что должно произойти. Но если попробовать так:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!--https://www.cyberforum.ru/javascript/thread262104.html-->
<html>
    <head>
        <title>tAddIH.html</title>
        <script>
        function fnOC()
        {
            var oi;
            
            oi=document.getElementById('svg_paper');
//          oi.innerHTML+='<rect x="70" y="60" width="100" height="30" fill="red"/>';
            oi.innerHTML+='<input type="button" value="abcd"/>';
        }
        </script>
    </head>
    <body>
    <div id="svg_canvas" style="width:600px; height:400px">
        <svg id="svg_paper" width="200" height="100" xmlns="http://www.w3.org/2000/svg">
            <rect x="50" y="40" width="100" height="30" fill="blue"/>
        </svg>
    </div>
        <input type='button' value='Add' onClick='fnOC();'/>
    </body>
</html>
, то сразу будет видно результат (появится кнопка). Так что аналогично тег <rect... тоже должен появиться. Проверил в Firefox и IE.
0
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
23.03.2011, 00:28  [ТС]
Цитата Сообщение от skaa Посмотреть сообщение
, то сразу будет видно результат (появится кнопка).
тоже не работает. проверил в Chrome и IE9
0
 Аватар для Kdn
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
23.03.2011, 14:18
TAVulator,
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<html>
        <head>
                <title>tAddIH.html</title>
                <script>
            
                
                function fnOC()
                {           
        var svgNS = "http://www.w3.org/2000/svg",                   
             r = document.createElementNS(svgNS,'rect'),
                    svg = document.createElementNS(svgNS,'svg');
                            
        svg.setAttribute('version','1.1');
        svg.setAttribute('width','600');
        svg.setAttribute('width','400');
                    
        r.setAttribute('x','70');
        r.setAttribute('y','60')
        r.setAttribute('width','100')
        r.setAttribute('height','30')
        r.setAttribute('fill','red')
                                
        svg.appendChild(r)
        
                        var oi=document.getElementById('svg_canvas');
                        oi.appendChild(svg);
                }
                </script>
        </head>
        <body>
    <div id="svg_canvas" style="width:600px; height:400px">
    </div>
                <input type='button' value='Add' onClick='fnOC();'/>
        </body>
</html>
Только по моему в IE не будет работать.
1
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
23.03.2011, 15:40  [ТС]
Kdn, это получается он каждый раз добавляет новый холст SVG, а как сделать, чтобы добавлялся новый элемент в существующий холст?
0
 Аватар для Kdn
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
23.03.2011, 20:19
TAVulator, ты поподробнее объясни. Ты как вообще на страницу <svg> добавляешь, прямо в HTML? Используешь какой нить фрэймворк?
Ты можешь скриптом добавить холст, например после загрузки страницы и хранить ссылку на него в переменной. Ну а потом, соответстсвенно, и добавлять графику в этот единственный холст.
Насколько я понимаю нужна кроссбраузерность. Но этот метод допустим у меня в IE8 не работает, ругается на document.createElementNS.
Там по моему через vml нужно.

Добавлено через 9 минут
Могу посоветовать фрэймворк Raphael
1
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
24.03.2011, 00:55  [ТС]
с помощью Raphael реализовал то, что мне нужно. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2011, 00:55
Помогаю со студенческими работами здесь

MapView добавление тэга
Delphi 10.1 Berlin выдает ошибку Project compiler.apk raised exception class EJNIException with message 'java.lang.IllegalStateException:...

XmlReader, считать строку из тэга при наличия другого тэга в нём
Есть такой XML &lt;text:p text:style-name=&quot;P38&quot;&gt; &lt;text:span text:style-name=&quot;T1&quot;&gt;тралала&lt;/text:span&gt; трололо ...

Вставка элемента внутрь Arraylist
Здравствуйте. Задача кода такова, чтобы при нахождении в Arraylist'е определенного символа(в данном случае это &quot;+&quot;) перед ним...

Попадание одного элемента внутрь другого
Такой код проверит, попал ли элемент1 на границу элемента2: IntersectRect(i, Элемент1.BoundsRect, Элемент2.BoundsRect); if not...

Списки. Инициализация, добавление элемента в начало и после другого элемента. Удаление элемента
uses crt; type list= ^item; item=record data: integer; next:list; end; var l:list; procedure print;


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru