Код магнитолы

Оппозиция в России ?

Россия и Украина

Мысли в слух...

Российская...власть ?

Skype

Создаём сайт

JS - телефон

Любимые сериалы

Гостевая


На главную



Существует ещё один вариант работы с элементами - использование динамического HTML (DHTML), расчитанный на поздние варианты браузеров. В иерархической объектной модели одну из важных ролей при доступе к объектам играют два набора: all и children. В первом содержатся ссылки на все объекты, расположенные ниже объекта в иерархии, тогда как второй содержит ссылки на все объекты, непосредственно порождаемые данным объектом (иерархия !). На вершине всей иерархии объектов расположен объект document, от которого происходят, в конечном итоге, все объекты, представляющие элементы HTML. Этот объект также имеет набор all (содержащий ссылки на все объекты документа), который можно использовать для доступа к любому объекту страницы. Оба набора можно использовать только при наличии у объектов атрибутов id="" и/или name ="".
В этом случае обращение к контейнерам будет выглядеть так :
var nameC = document.all.contN;
var commC = document.all.contC;
А обращение к текстовым узлам (элементам) формы :
var nameE = document.all.myname.lastChild;
var commE = document.all.mycomm.lastChild;
Как видно из последних обращений - методы работы с DOM и DHTML- взаимозаменяемы. Соответственно изменится и содержание функции :
       <script language="javascript">  
01       function getComment()
02          {
03              var nameE=document.all.myname.lastChild;
04              var commE=document.all.mycomm.lastChild;
05              var contEn=document.all.contN;
06              var contEc=document.all.contC; 
07              contEn.appendChild(nameE); 
08              contEc.appendChild(commE);                       
09          } 
        <script>                                        
                         рис.10 
Этот вариант обращений к узлам (элементам) - то-же не последний.
После того, как мы закончили с инструкцией для браузера, необходимо подумать о том, как сохранить полученные контейнеры с отзывом. Этот отзыв не исчезнет, как только в форму добавят новый отзыв - он просто присоседится в тот - же контейнер : имя к имени, а отзыв к отзыву. Выглядит это - не очень...
В PHP эта проблемма легко решаема при помощи цикла, который создаёт, в том числе - и контейнеры, по заданному (CSS) образцу.
Местоположение контейнеров с отзывами там задаётся положением РНР - кода относительно <form>. Нечто подобное обеспечивает и JS.
Мы не будем усложнять и без того не лёгкую задачу и, выберем наиболее простой путь : создадим на страничке контейнер <div id="comments"></div>, в который будут помещатся добавленные отзывы. Заполняя форму, каждый посетитель создаёт два новых элемента : имя и отзыв (nameE и commE). При помощи JS - функции мы будем создавать новые контейнеры для каждой пары, а затем добавлять их, как "дочерние"(иерархия !), в контейнер "comment", который мы так-же создадим, вместе с контейнером для времени добавления отзыва. А потом уже сам контейнер "comment" и контейнер с временем отзыва, мы добавим в созданный на страничке контейнер "comments". Так мы получим цикл.
дальше...
...назад