Динамическая вёрстка ссылок для навигации:проблемка :(
Доброго времени суток, товарищи кодеры!
Вот, мучаю DOM помаленьку;хотел недавно несколько автоматизировать процесс создания ссылок для перемещения по многостраничному HTML документу. Ссылки помещенны в таблицу с одной ячейкой. Так вот, чтобы каждый раз не писать нечто вроде: <a href = "1.html"> 1 </a><a href ="2.html"> 2 </a><a href = "n.html"> n </a> Сварганил следущий код: function createHLink(q) {var hlink = new Array(q); var array_text = new Array(q); for(var l = 1;l<=q;l++){ hlink[l] = document.createElement("a"); hlink[l].href = l+".html";} for (var m = 1;m <=q;m++ ){ array_text[m] = m; var oText = document.createTextNode(array_text[m]); hlink[m].appendChild(oText);} bodytbl = document.getElementById("tbl"); bodytbl.rows[0].cells[0].appendChild(hlink) } В последней строчке скрипта FireBug выдаёт ошибку: "Невозможно добавить данный узел в иерархию узлов Код №3" Как я понимаю это происходит вследствии того, что с помощью appendChild() невозможно добавить массив целиком в дерево узлов DOM. Наверно придёться использовать совершенно другой подход к решению задачи или ёще можно помучать сей код. Кто подскажет, ЧТО ДЕЛАТЬ? |
Цитата:
Цитата:
|
Ага!
Ну с добавлением элементов по отдельности вопрос более менее ясен. А сам, если так можно выразиться алгоритм решения задачи не шибко крив да кос будет?! |
Ну он крив да кос изначально. Такие вещи на сервере делаются.
|
[offtop]
Kolyaj То, что такие вещи удобнее делать на стороне сервера - сие и ежу понятно:). А вот, если веб-страничка на старом-добром Narod.RU. и не хочеться многократно вручную дублировать один и тот-же HTML код - я считаю это хоть кривым, но всё же выходом из положения. ************************ Вот теперь для добавления элементов массива по отдельности в дерево узлов сделаем цикл for ( in ) и дело в шляпе... |
Задача решена!
Товарищи, если кому интересно привожу код динамической вёрстки
ссылок на JavaScript ( извращенство, конечно, зато часть работы делает машина :) ) Итак, function createHLink(q) { var hlink = new Array(q); var array_text = new Array(q); for(var l = 1;l<=q;l++){ hlink[l] = document.createElement("a"); hlink[l].href = l+".html";} for (var m = 1;m <=q;m++ ){ array_text[m] = m + " " ; var oText = document.createTextNode(array_text[m]); hlink[m].appendChild(oText);} bodytbl = document.getElementById("tbl"); var F = document.createDocumentFragment(); for (var i in hlink){ bodytbl.rows[0].cells[0].appendChild(hlink[i]); } F.appendChild(bodytbl); document.body.appendChild(F); } Все просто и ясно. Прошу ваших отзывов в топик. |
Цитата:
|
Цитата:
function createHLink(q){ var Link_Str=""; for (var l=1;l<=q;l++){ Link_Str+="<a href=\""+l+".html\" style=\"margin-right:4px;\">"+l+"</a>"; } document.getElementById("tbl").rows[0].cells[0].innerHTML=Link_Str; } Согласитесь проще. Ну а если "извращаться", то с более сложными объектами, вложенные меню к примеру. ЗЫ: страницы, ссылки на которые сделаны скриптом, не индексируются поисковыми системами. |
Совершенству нет предела;)
Да действительно этот способ проще приведенного мной, хотя и не такой
наглядный примером новичку. |
Часовой пояс GMT +3, время: 15:39. |