jQuery рецепт: создание и добавление новых элементов (часть 2)

В предыдущей статье, мы начали разговор о том как добавлять новые элементы на страницу с помощью JavaScript и jQuery. Сегодня мы рассмотрим как можно сделать то же самое, но не в конце родительского элемента, а в других локациях.

В этому уроке, мы будем работать с следующим HTML фрагментом:

<ul id="list">
	<li>Ut enim ad minim veniam.</li>
	<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</li>
	<li>Duis aute irure dolor in reprehenderit.</li>
	<li>Sunt in culpa qui officia deserunt mollit.</li>
	<li>Excepteur sint occaecat cupidatat non proident.</li>
</ul>

Вставляем элементы на первые позиции

В первом примере, мы создадим новый элемент и вставим его перед всеми существующими в элементе родителя.

Идея заключается в добавлении нового элемента <li> в начало списка <ul>. Сначала сделаем это с помощью обычного JavaScript:

var li 	= document.createElement('li'),
	txt = document.createTextNode('This is the text in new element.');

li.appendChild(txt);

После создания нового элемента, нам необходимо вставить его в начало списка, воспользовавшись методом insertBefore().

Теперь нам нужно выбрать элемент, в который мы будем помещать новый элемент списка. Извлекать его будем по ID:

ul 	= document.getElementById('list');

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

var firstChild = ul.firstChild;

Ну и теперь, чтобы вставить новый элемент в начало, воспользуемся методом .insertBefore():

В скобках указываем какой элемент нужно вставить и элемент перед которым это нужно сделать:

ul.insertBefore(li, firstChild);

В результате выполнения данного кода, в список <ul> будет добавлен новый <li> элемент. Результат:

Используем jQuery

Если говорить об использовании jQuery, то тут всё гораздо легче. Для решения этой же задачи, воспользуйтесь методом .prepend():

$('#list').prepend('<li>This is the text in new element. (with jQuery)</li>');

Вставляем элемент в определённое место

Давайте посмотрим как вставить элемент до или после третьего потомка родителя. Опять же, сделаем это и на JavaScript и на jQuery:

Создаём новый элемент точно так же, как в предыдущем примере:

var li 	= document.createElement('li'),
	txt = document.createTextNode('This is the text in new element.');
li.appendChild(txt);

Далее нам нужно извлечь какой-то <li> элемент. В JavaScript сделать это можно с помощью метода .getElementsByTagName().

var list = document.getElementsByTagName('li');

Далее нам нужно извлечь индекс. В JavaScript отсчёт начинается с 0, значит нам нужен 2ой элемент. Поместим его в переменную nthList:

Теперь снова можем воспользоваться методом .insertBefore():

ul.insertBefore(li, nthList);

В браузере результат будет такой:

Для вставки нового элемента после третьего, просто вычислим следующий индекс с помощью метода .nextSibling():

ul.insertBefore(li, nthList.nextSibling);

Результат:

Используем jQuery

Для подобных задач, в jQuery ввели 3 функции: .before(), .after() и .eq().

В результате, решений нашей задачи будет выглядеть так:

$('li').eq(2).before('<li>This is the text in new element. (with jQuery)</li>');

или так:

$('li').eq(2).after('<li>This is the text in new element. (with jQuery)</li>');

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/xqJ6Ic9QhVU/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

jQuery рецепт: создание и добавление новых элементов (часть 2) | | 2013-06-16 01:39:28 | | Статьи Web-мастеру | | В предыдущей статье, мы начали разговор о том как добавлять новые элементы на страницу с помощью JavaScript и jQuery. Сегодня мы рассмотрим как можно сделать то же самое, но не в конце родительского | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: