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

Источник: lred.ru

Оцените статью
новости для мужчин