powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / appendChild затирает параметры
8 сообщений из 8, страница 1 из 1
appendChild затирает параметры
    #34149826
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема при добавлении нескольких элементов при помощи appendChild состоит в следуюшем

Есть фунция на JAVASCRIPT, которая анализирует переданные узлы из XML-потока
например
автор<div id="" className="access">
<innerHTML>W</innerHTML>
<input id="ch_w_1" name="ch_w_0" type="checkbox" onclick="check_other_checkbox(this.form,this)"></input>
<innerHTML>R</innerHTML>
<input id="ch_r_1" name="ch_r_0" type="checkbox" onclick="check_other_checkbox(this.form,this)"></input>
<innerHTML>E</innerHTML>
<input id="ch_e_1" name="ch_e_0" type="checkbox" onclick="check_other_checkbox(this.form,this)"></input>
<innerHTML>V</innerHTML>
<input id="ch_v_1" name="ch_v_0" type="checkbox" onclick="check_other_checkbox(this.form,this)"></input>
</div>

и на основание полученных данных строит объекты на странице...
в данном случаи создаются
1. объект DIV с параметрами
2. объект INPUT параметрами
3. INPUT при помощи appendChild запихивается в DIV
4. объект INPUT параметрами
5. INPUT при помощи appendChild запихивается в DIV
6. объект INPUT параметрами
7. INPUT при помощи appendChild запихивается в DIV
8. объект INPUT параметрами
9. INPUT при помощи appendChild запихивается в DIV
10 DIV при помощи appendChild запихивается в BODY

итог: на странице DIV в котором есть 4 checkbox

НО проблема в том, что только у последнего INPUT сохраняются параметры name и onclick...

пошаговый анализ

авторДобавляем параметры из ПАРАМЕТРОВ в DIV
ii[1] className = access
Добавляем параметры из УЗЛОВ в DIV
innerHTML = W
Добавляем параметры из ПАРАМЕТРОВ в INPUT
ii[0] id = ch_w_1
ii[1] name = ch_w_0
ii[2] type = checkbox
ii[3] onclick = check_other_checkbox(this.form,this)
ДОБАВИЛИ в DIV.id= объект INPUT.id=ch_w_1
Добавляем параметры из УЗЛОВ в DIV
innerHTML = R
Добавляем параметры из ПАРАМЕТРОВ в INPUT
ii[0] id = ch_r_1
ii[1] name = ch_r_0
ii[2] type = checkbox
ii[3] onclick = check_other_checkbox(this.form,this)
ДОБАВИЛИ в DIV.id= объект INPUT.id=ch_r_1
Добавляем параметры из УЗЛОВ в DIV
innerHTML = E
Добавляем параметры из ПАРАМЕТРОВ в INPUT
ii[0] id = ch_e_1
ii[1] name = ch_e_0
ii[2] type = checkbox
ii[3] onclick = check_other_checkbox(this.form,this)
ДОБАВИЛИ в DIV.id= объект INPUT.id=ch_e_1
Добавляем параметры из УЗЛОВ в DIV
innerHTML = V
Добавляем параметры из ПАРАМЕТРОВ в INPUT
ii[0] id = ch_v_1
ii[1] name = ch_v_0
ii[2] type = checkbox
ii[3] onclick = check_other_checkbox(this.form,this)
ДОБАВИЛИ в DIV.id= объект INPUT.id=ch_v_1

Но при запросе всех INPUT документа получаю
автор tagName=INPUT
name=
id=ch_w_1
onclick=null

tagName=INPUT
name=
id=ch_r_1
onclick=null

tagName=INPUT
name=
id=ch_e_1
onclick=null

tagName=INPUT
name=ch_v_0
id=ch_v_1
onclick=function () { eval(value) }

Только на последнем checkbox обрабатывается событие onclick
...
Рейтинг: 0 / 0
appendChild затирает параметры
    #34150085
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
2. объект INPUT параметрами
3. INPUT при помощи appendChild запихивается в DIV
...

А ты как делаешь? Переписываешь значения аттрибутов и добавляешь input в div, или создаешь НОВЫЙ input, а потом присваиваешь новые аттрибуты?
...
Рейтинг: 0 / 0
appendChild затирает параметры
    #34150192
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я создаю при помощи

var newObject = document.createElement(tagName)

где tagName - это имя тэги из XML-потока
потом в newObject устанавливаю параметры и тока потом

obj.appendChild(newObject)

где obj - объект родитель
Это всё в рекурсивной функции... ВСЕ переменные объявляются через var


автор1. var newObject = document.createElement('div')
2. var newObject = document.createElement('input')
3. obj.appendChild(newObject) //obj = newObject из пункта 1
4. var newObject = document.createElement('input')
5. obj.appendChild(newObject)//obj = newObject из пункта 1
6. var newObject = document.createElement('input')
7. obj.appendChild(newObject)//obj = newObject из пункта 1
8. var newObject = document.createElement('input')
9. obj.appendChild(newObject)//obj = newObject из пункта 1
10 obj.appendChild(newObject)//obj = document.body
...
Рейтинг: 0 / 0
appendChild затирает параметры
    #34150795
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не должно затираться
А вместо объяснений лучше бы привести код
...
Рейтинг: 0 / 0
appendChild затирает параметры
    #34151084
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению я не имею права предоставлять весть код :(
...
Рейтинг: 0 / 0
appendChild затирает параметры
    #34151230
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От тебя никто не требует ВЕСЬ код, а только тот кусок жабаскрипта, который генерит input'ы. Вряд ли ты там используешь какую-то мегасекретную методику. Тем более, что в итоге любой жабаскрипт сможет увидеть кто угодно )

У тебя явно в коде ошибка и никто тебе вот так вслепую не скажет, где именно.
...
Рейтинг: 0 / 0
appendChild затирает параметры
    #34151334
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторvar number_of_nodes = node.childNodes.length;
for ( var i = 0 ; i < number_of_nodes ; i++) {
var newChild = false;
var tagName = node.childNodes .tagName || '';
var numb_childNodes = node.childNodes.childNodes.length || '';
var id = node.childNodes.getAttribute('id');
var value = false;
if ( node.childNodes.firstChild ) {
var value = node.childNodes.firstChild.nodeValue || false;
}
......
var newObject = document.createElement(tagName);
for ( var ii = 0 ; ii < node.childNodes.attributes.length ; ii++ ) {
var atributeName = node.childNodes.attributes[ii].name;
var atributeValue = node.childNodes.attributes[ii].value;
if ( atributeValue != '' ) {
newNode[atributeName] = atributeValue;
}
}
.....
if ( numb_childNodes > 0 && !value ) {
//Рекурсивный вызов
}
if ( newObject && newChild ) {
obj.appendChild(newObject);
}
}

node - это родительский узел из XML-потока
...
Рейтинг: 0 / 0
appendChild затирает параметры
    #34154576
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема немного проясняснилась ... обнуление происходит еще до добавления следующего input

tagName=INPUTname=id=ch_w_1onclick=nulltagName=INPUTname=ch_r_0id=ch_r_1onclick=function () { eval(value) }

tagName=INPUTname=id=ch_w_1onclick=nulltagName=INPUTname=id=ch_r_1onclick=nulltagName=INPUTname=ch_e_1id=ch_e_1onclick=function () { eval(value) }

tagName=INPUTname=id=ch_w_1onclick=nulltagName=INPUTname=id=ch_r_1onclick=nulltagName=INPUTname=id=ch_e_1onclick=nulltagName=INPUTname=ch_v_0id=ch_v_1onclick=function () { eval(value) }
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / appendChild затирает параметры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]