|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
Проблема при добавлении нескольких элементов при помощи 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2006, 12:46 |
|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
... 2. объект INPUT параметрами 3. INPUT при помощи appendChild запихивается в DIV ... А ты как делаешь? Переписываешь значения аттрибутов и добавляешь input в div, или создаешь НОВЫЙ input, а потом присваиваешь новые аттрибуты? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2006, 13:38 |
|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
Я создаю при помощи 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2006, 13:57 |
|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
Ничего не должно затираться А вместо объяснений лучше бы привести код ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2006, 16:14 |
|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
К сожалению я не имею права предоставлять весть код :( ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2006, 17:10 |
|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
От тебя никто не требует ВЕСЬ код, а только тот кусок жабаскрипта, который генерит input'ы. Вряд ли ты там используешь какую-то мегасекретную методику. Тем более, что в итоге любой жабаскрипт сможет увидеть кто угодно ) У тебя явно в коде ошибка и никто тебе вот так вслепую не скажет, где именно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2006, 17:41 |
|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
автор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-потока ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2006, 18:06 |
|
appendChild затирает параметры
|
|||
---|---|---|---|
#18+
Проблема немного проясняснилась ... обнуление происходит еще до добавления следующего 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) } ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2006, 18:04 |
|
|
start [/forum/topic.php?fid=22&msg=34150192&tid=1459119]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 157ms |
0 / 0 |