0 / 0 / 1
Регистрация: 26.04.2011
Сообщений: 30

document.createElement('TD')

05.08.2011, 12:39. Показов 7191. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть два файла.
Form2.html:

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
36
37
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>Тест2</title> 
<link href="test.css" type="text/css" rel="stylesheet" /> 
<meta http-equiv="Content-type" content="text/html" charset="utf-8" /> 
<script type="text/javascript" src="dobavemail.js"></script>
</head> 
<body>
    
<div>
    <table>
        <tbody id="contacts">
            <tr>
                <td colspan="3"><a href="javascript:addContact();">Добавьте контакт</a></td>
            </tr>
            <tr>
                <td></td>
                <td>Name </td>
                <td>Email</td>
            </tr>
        </tbody>
</table>
</div>
 
<!--<div>
            <form name="form1" onsubmit="return validateForm();">   
                введите ваше имя: <input name="firstname"><br />
                    <input type="radio" name="color" value="blue">Синий<br />
                    <input type="radio" name="color" value="red">Красный<br />
                    <input type="radio" name="color" value="green">Зеленый<br />
                <button name="lockbutton2" id="lockbutton" onclick="swapLock();return false;">кнопка</button>
                
            </form>
        </div>-->
        
</body> 
</html>
второй обработчик:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function addContact(){
    var table = document.getElementById('contacts');
 
    var tr    = document.createElement('TR');
    var td   = document.createElement('TD');
    var inp1  = document.createElement('INPUT');
    var inp2  = document.createElement('INPUT');
 
 
    inp1.setAttribute("Name", "Name" +inputs);
    inp2.setAttribute("Email", "Email"+inputs);
 
    table.appendChild(tr);
    for (var i=0;i<3;i++)
    {
        tr.appendChild(td);
    }
}
сответственно при нажатии на ссылку Добавьте контакт должно прибавляться 1 строка в которой 3 столбца... А прибавляется 1 строка в которой 1столбец.. Почему так происходит...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2011, 12:39
Ответы с готовыми решениями:

Ошибка в var iScrollTop = document.Fr1.document.body.ScrollTop;
есть страничка, на ней &lt;IFRAME name='Fr1'&gt;&lt;/IFRAME&gt;. Так вот когда я пишу var iScrollTop = document.Fr1.document.body.ScrollTop; то...

Разница между document.querySelectorAll() и document.body.getElementByClassNam()
И document.querySelectorAll(&quot;selector&quot;) и document.body.getElementsByClassNam(&quot;selector&quot;) возвращают массив найденных элементов по...

Как это работает (function(document) {.})(document);?
Добрый день! Нашёл замечательный скрипт menu effects. Хочу прикрутить к своему сайту. Во всех браузерах работает правильно, но в IE 11...

11
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
05.08.2011, 12:44
Цитата Сообщение от mf_tyrael Посмотреть сообщение
JavaScript
1
2
3
4
for (var i=0;i<3;i++)
 {
 tr.appendChild(td);
 }
Потому что Вы один и тот же td трижды вставляете в один и тот же tr. Надо в цикле каждый раз снова делать createElement().

Добавлено через 1 минуту
Точнее, в первый раз Вы его вставляете, а в остальные разы Вы его перемещаете из tr снова в этот же tr.
1
0 / 0 / 1
Регистрация: 26.04.2011
Сообщений: 30
05.08.2011, 13:05  [ТС]
Как правильно написать?
JavaScript
1
tr.appendChild(var td = document.createElement('TD'));
Добавлено через 5 минут
JavaScript
1
2
3
4
5
for (var i=0;i<3;i++)
    {
        var td = document.createElement('TD');
        tr.appendChild(td);
    }
вот так в принципе работает. Интересно узнать как в одну строчку написать без создание переменной предварительно?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
05.08.2011, 13:44
Цитата Сообщение от mf_tyrael Посмотреть сообщение
Интересно узнать как в одну строчку написать без создание переменной предварительно?
JavaScript
1
tr.appendChild(document.createElement('td'));
0
0 / 0 / 1
Регистрация: 26.04.2011
Сообщений: 30
05.08.2011, 14:38  [ТС]
Спасибо))) Я сам учился сначала программировать на с/с++... Сейчас устроился на работу связанную с веб программированием... И теперь изучаю php js... Так как языки с подобные... В основном все понимаю))) Но практики нет... В книжках примеров на тренировку что то нет... Хотя вроде читаю две замечательные книги по php5 и javascript.
Хотел спросить где можно достать какие либо примеры или что то подобное?
0
Просто любитель
 Аватар для GuardCat
626 / 464 / 120
Регистрация: 20.01.2011
Сообщений: 865
Записей в блоге: 2
05.08.2011, 14:41
http://javascript.ru

Там и литературку рекомендуют и статьи пишут интересные и примеров есть.

По PHP не подскажу.
0
0 / 0 / 1
Регистрация: 26.04.2011
Сообщений: 30
05.08.2011, 15:49  [ТС]
Почему нельзя засунуть в массив таким способом

JavaScript
1
2
3
4
5
for (var i=0;i<3;i++)
{
        td[i]= document.createElement('td');
        tr.appendChild(td[i]);
}
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
08.08.2011, 07:30
Цитата Сообщение от mf_tyrael Посмотреть сообщение
Почему нельзя засунуть в массив таким способом
Можно. А смысл? Зачем нам лишний массив, если мы его не используем целиком, как массив? Отсюда массив упрощается до одной переменной, как изначально было. А потом мы и от переменой избавляемся, ибо нам не нужно дополнительно с td работать: создали, засунули и забыли.
0
0 / 0 / 1
Регистрация: 26.04.2011
Сообщений: 30
08.08.2011, 14:12  [ТС]
Я просто подумал... Допустим мы не знаем сколько td добавлять изначально... 1 или 20... То есть возможно оно измениться в будущем...
и я подумал должно выглядеть примерно так.
JavaScript
1
2
3
4
5
for (var i=0;i<3;i++)
{
                td[i]= document.createElement('td');
                tr.appendChild(td[i]);
}
Но это не работает. А ты говоришь можно... если можно возможно я в синтаксисе ошибся?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
08.08.2011, 19:23
Цитата Сообщение от mf_tyrael Посмотреть сообщение
Но это не работает. если можно возможно я в синтаксисе ошибся?
Так надо в for() считать не до 3, а до сколько надо из переменной. Массив здесь не нужен, ибо не оправдан.
0
0 / 0 / 1
Регистрация: 26.04.2011
Сообщений: 30
08.08.2011, 22:35  [ТС]
Можно на примере показать, что ты имеешь в виду?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
09.08.2011, 06:23
JavaScript
1
2
3
4
var n = 42;
for (var i = 0; i < n; i++) {
    tr.appendChild(document.createElement('td'));
};
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2011, 06:23
Помогаю со студенческими работами здесь

Разница между document.body и document
Есть две разные строки для присвоения тегу &lt;h1&gt; текста: document.body.getElementsByTagName(&quot;h1&quot;).innerHTML = &quot;My information&quot;; ...

document.URL or document.location.href
есть документ из трёх фреймов. При загрузке второго фрейма (2) в первом фрейме (1) в поле 'log' должен появлятся адрес второго фрейма...

CreateElement
Помогите разобраться с примером , начал изучать js с javascript.ru , не могу понять почему не создается элемент, вообщем ничего не...

CreateElement не работает
&lt;html&gt; &lt;body&gt; &lt;img src=&quot;1.jpg&quot; onclick=&quot;fclick();&quot;&gt; &lt;script&gt; function fclick() { var newimage =...

CreateElement из строки
Добрый. Имею ajax запрос, который возвращает мне кусок разметки. Но возвращает он мне ее в виде строки. Далее мне нужно эту разметку...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru