Авторский знак. Seosait21.ru Есть у человека надежда. Пока не поздно. Вгрызайся и изучай.
Нажимай и поддержи.

Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30


Чувашия-это моя Россия

Создание структуры документов в JavaScript.

(продолжение)

 
                        var р, text;
                        р = document.createElement('р');
                        text = 'Here we have some \u201Cquotes. \u201D.' ;
                        p.appendChild( document.createTextNode( text )	);

Объекты HTML знакомы значительно лучше, чем коды Unicode, поэтому использование последних при вставке каждого специального символа при создании сайта будет немного раздражать; innerHTML позволяет применять более удобный синтаксис при установке значения р:

 
                        p.innerHTML = 'Here we have some “quotes.”

Аналогично добавление многочисленных текстовых узлов и встроенных элементов в текст таких элементов, как параграф, может оказаться трудоемким процессом в процессе создания сайта. Даже простое выделение фразы в предложении создается не очень просто и может вызывать раздражение при написании страниц сайта:

 
                        p.appendChild( document.createTextNode('This content is ')); 
                          var em = document.createElement( 'em' );
                        em.appendChild( document.createTextNode('emphasized ));
                        p.appendChild( em );
                        p.appendChild( document.createTextNode(	));

В приводимом выше примере используется много сокращений, но при этом для достижения нужного результата требуется сделать много шагов и при создании сайта. При использовании innerHTML это делается значительно проще:

 
                        p.innerHTML+='This content is < em>emphasized< /em>.';

Конечно, одним из преимуществ применения метода DOM является то, что после присвоения вставляемых узлов некоторой переменной они остаются доступными даже после их вставки в документ при создании бесплатного сайта. Поэтому в указанном выше примере, где используются операции над узлами, можно просто заменить элемент еm (т.е. присвоенный переменной еm) другим тестовым узлом:

 
                        еm.parentNode
                        .replaceChild(document.createTextNode('not emphasized'),em);

В конечном итоге при создании сайта выбор подхода остается за Вами. Оба имеют свои достоинства, однако следует еще раз отметить, что, если страницы сайта рассматриваются как XML-документы, необходимо использовать операции над узлами модели DOM.

insertBefore( ).

В данном случае можем использовать метод:

 
                        insertBefore()
                        .var body = document.getElementsByTagName('body' )[0];
                        body.insertBefore(new_div, body.firstChild);

insertBefore() имеет два аргумента: первый является вставляемым узлом, а второй - узлом, перед которым требуется вставить первый узел на страницах сайта. В нашем примере вставляем новый элемент div перед первым дочерним элементом firstChild элемента body.

replaceChild().

Предположим, что вместо вставки нашего нового элемента div перед первым дочерним элементом элемента body хотим заменить первый дочерний элемент (определяемый свойством firstchild) на странице бесплатного сайта. Для этого необходимо использовать метод replaceChild():

 
                        body.replaceChild(new_div, body.firstChild);

Как и insertBefore(), метод replaceChild() имеет два аргумента, первый из которых - это узел, подставляемый вместо второго аргумента.

removeChild() при создании сайта.

Поскольку темой являются операции над узлами, необходимо рассмотреть метод removeChild() при создании сайта. Используя removeChild(), можно удалить из документа сайта один узел или даже целое дерево узлов. Этот метод принимает единственный аргумент - узел, который хотите удалить. Предположим, что требуется удалить текстовый узел из нашего элемента div при оформлении страниц сайта. С помощью removeChild() это можно сделать следующим образом:

 
                        div.removeChild( div.firstchild );

Метод removeChild() можно использовать для удаления из страницы сайта всего элемента body, что было бы не очень хорошо, но это демонстрирует мощность этого метода:

 
                        body.parentNode.removeChild(body ); 
                        cloneNode()

cloneNode( ) является последним из методов, выполняющих операции над узлами DOM. Применяя этот мощный метод, можно получать копию отдельного узла (указывая в качестве аргумента false) или узла и всех его узлов-потомков (указывая в качестве аргумента true) при создании сайта. Ниже приводится пример использования метода cloneNode() при создании сайта:

 
                var ul = document.createElement( 'ul' ); 
                var li = document.createElement( 'li' ); 
                li.className = 'check'; for( var i=0; i< 5;i++ ) {
                var new_li = li.cloneNode( true );
                new_li.appendChild( document.createTextNode( 'list item '+(i
                                                       + 1 ) ) ) ;
                ul.appendChild( new_li );
                }

Возможно, польза от применения данного метода при создании сайта не видна на первый взгляд - она заключается прежде всего в производительности: копия узла создается гораздо быстрее, чем построение нового узла «с нуля».


seosait21.ru
HTML

seosait21.ru
CSS

seosait21.ru
Web-диз.
HTML ссылка CSS ссылка ...

seosait21.ru
JavaScript

seosait21.ru
PHP

seosait21.ru
JQuery
JavaScript ссылка PHP ссылка JQuery ссылка

seosait21.ru
SEO.

seosait21.ru
MySQL

seosait21.ru
XML
... ... ...

обратно на главную     назад    дальше     вперед

ПОНРАВИЛОСЬ?
ПОДЕЛИСЬ с ДРУЗЬЯМИ: