как создать елемент с вложеными елементами
есть элемент его создаём через createElement("script"),
ну так вот как создать в нём ещё несколько элементов, прежде чем выполнить команду appendChild(answerScript), или есть какая нибуть другая функция в которую можно задать многомерный массив и всё выйдет так как надо. |
чего ты пытаешься добиться такими странными манипуляциями? о_0
|
просто надо как то задать массив,
например так, var mx = [{ tagname:'table', Child:[{ tagname:'tr', Child:[{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' }] },{ tagname:'tr', Child:[{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' }] }] }]; потом этот массив преобразовать в HTML сод и воткнуть в страницу, примерно так, document.body.appendChild(mx); |
Или не совсем понял суть вопроса или
var _el = document.createElement("script"); function appendElements(_arr) { for (var i=0; i<_arr.length; i++) { _el.appendChild(document.createElement(_arr[i])); } document.appendChild(_el); } м.б. где-то нварал %) ПС. Начал писать еще до появления последнего поста. А сразу через innerHTML нельзя? |
сериализуй в хтмл-строку и вставь через innerHTML.
|
ни как не понимаю почему то такая штука не работает,
function addComponent(_obj, _arr) { for(var k in _arr) { if(typeof _arr[k].tagname == 'string') { var tag = _arr[k].tagname; var Component = document.createElement(tag); alert(typeof Component); if(typeof _arr[k].attributes == 'object') { var attributes = _arr[k].attributes; for(var d in attributes) { if(typeof attributes[d] == 'string') { Component[d] = attributes[d]; } } } var domComponent = _obj.appendChild(Component); if(typeof _arr[k].Child == 'object') { addComponent(domComponent, _arr[k].Child); } } } } function init() { var mx = [{ tagname:'table', attributes:{ width:'100%', height:'600', bgcolor:'#0000CC' }, Child:[{ tagname:'tr', Child:[{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' }] },{ tagname:'tr', Child:[{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' }] }] }]; addComponent(document.body, mx); } |
:):):)
в опере заработало, function addComponent(_obj, _arr) { for(var k in _arr) { if(typeof _arr[k].tagname == 'string') { var tag = _arr[k].tagname; var Component = document.createElement(tag); //alert(typeof Component); if(typeof _arr[k].attributes == 'object') { var attributes = _arr[k].attributes; for(var d in attributes) { if(typeof attributes[d] == 'string') { Component[d] = attributes[d]; } } } if(typeof _arr[k].innerHTML == 'string') { Component.innerHTML = _arr[k].innerHTML; } var domComponent = _obj.appendChild(Component); if(typeof _arr[k].Child == 'object') { addComponent(domComponent, _arr[k].Child); } } } } function init() { var mx = [{ tagname:'table', attributes:{ width:'100%', height:'600', bgColor:'#0000CC' }, Child:[{ tagname:'tr', Child:[{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' }] },{ tagname:'tr', Child:[{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' },{ tagname:'td', innerHTML:'text text text text text text ' }] }] }]; addComponent(document.body, mx); } в IE таблица вроди как существует, но её почему то не видно |
scuter,
в ИЕ не работает изменение таблиц через innerHTML. используйте addRow и т.д. |
так там не innerHTML, а createElement используется
|
scuter, пардон, виноват. Тем не менее, поглядите сюда: http://support.microsoft.com/kb/239832, и попробуйте через insertRow и insertCell методы.
|
Часовой пояс GMT +3, время: 20:24. |