TOC
Need to learn JavaScript? jQuery is a JavaScript framework, so if you don't already know about the JavaScript programming language, we recommend that you learn it now: Learn JavaScript

This article has been localized into Russian by the community.

Манипуляции с DOM:

Методы before() и after()

В предыдущей главе мы использовали методы append() и prepend() , чтобы вставлять что-нибудь внутрь элемента. но порой бывает нужно вставить что-то перед (before) или после (after) элементов. В jQuery для этого есть методы before() и after(), и их также легко использовать. Проверьте следующий пример:

<a href="javascript:void(0);" onclick="$('input.test1').before('<i>Before</i>');">Before</a>   
<a href="javascript:void(0);" onclick="$('input.test1').after('<b>After</b>');">After</a>

<br /><br />

<input type="text" class="test1" value="Input 1" name="txtInput1" /><br />
<input type="text" class="test1" value="Input 2" name="txtInput2" /><br />

В зависимости от того, по какой ссылке вы кликните, тег жирности или курсива будет вставлен перед или после каждого элемента input с классом "test1". Как и append() и prepend(), оба метода after() и before() позволяют использовать строки HTML, элементы DOM и объекты jQuery в качестве параметров и принимают их неограниченное количество. Я продемонстрирую это следующим примером:

<a href="javascript:void(0);" onclick="InsertElements();">Insert elements</a>
<br /><br />
<span id="spnTest2">Hello world? </span>

<script type="text/javascript">
function InsertElements()
{
	var element1 = $("<b></b>").text("Hello ");
	var element2 = "<i>there </i>";
	var element3 = document.createElement("u");
	element3.innerHTML = "jQuery!";
	
	$("#spnTest2").after(element1, element2, element3);
}
</script>

В данном примере мы создали объект jQuery, строку HTML и JavaScript DOM-элемент, а затем воспользовались методом after(), чтобы вставить их после тега span. Разумеется, метод before() можно было бы использовать точно так же.

У методов before() и after() есть побратимы insertBefore() и insertAfter(). Они делают все то же самое, но только в обратной записи: вместо того, чтобы вызывать их у элемента, перед или после которого мы хотим выполнить вставку, и передавать то, что вставляем в качестве параметра, нужно сделать ровно наоборот. Какой метод использовать - зависит от ситуации, но вот пример, который демонстрирует оба подхода:

<a href="javascript:void(0);" onclick="InsertElementsBefore();">Insert elemenets</a>
<br /><br />
<span id="spnTest3">Hello world? </span>

<script type="text/javascript">
function InsertElementsBefore()
{	
	$("#spnTest3").before($("<i></i>").text("before() "));
	$("<b></b>").text("insertBefore() ").insertBefore("#spnTest3");
}
</script>

В данном примере мы вставляем объекты перед тегом span, но можно, конечно, так же использовать after() и insertAfter(), чтобы вставить их после. Как вы можете видеть, результат одинаковый, меняется только порядок записи.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!