jQuery: каково различие между после () и insertAfter ()

jQuery имеет .after() метод, и также .insertAfter() метод.

Каково различие между ними? Я думаю, что могу использовать .after() вставить элементы после выбранного элемента (или элементов). Это правильно? Что .insertAfter() для?

45
задан Mohammad 10 March 2017 в 10:47
поделиться

6 ответов

Они взаимно противоположны.

' after ' вставляет аргумент после селектора.

' insertAfter ' вставляет селектор после Аргумент.

Вот пример того же самого:

insertafter ():

 

Приветствую

Привет
До свидания
$ ("

Тест

") .insertAfter (".inner"); Каждый внутренний элемент
получает новое содержимое:

Приветствую

Привет

Тест

До свидания

Тест

after ():

 

Приветствую

Привет
До свидания
$ (".inner") .after ("

Тест

");

Приветствую

Привет

Тест

До свидания

Тест

71
ответ дан 26 November 2019 в 20:56
поделиться

Они противоположны друг другу. Как объясняется в документации jQuery :

Это:

$("p").insertAfter("#foo");

То же самое, что и это:

$("#foo").after("p");

И, наконец, insertAfter возвращает все вставленные элементы, тогда как .after () вернет контекст, которым он является позвонил.

23
ответ дан 26 November 2019 в 20:56
поделиться

Пока все ответы ясны как грязь ;-) (Так что я тоже попробую!)

Если вы начнете с этого HTML:

<p id="pOne">Para 1</p>
<p id="pTwo">Para 2 <span id="sMore">More</span></p>

После того, как вставляет некоторое новое содержимое после соответствующих тегов:

$("p")                       // Match all paragraph tags
    .after("<b>Hello</b>");  // Insert some new content after the matching tags

Конечный результат:

<p id="pOne">Para 1</p><b>Hello</b>
<p id="pTwo">Para 2 <span id="sMore">More</span></p><b>Hello</b>

С другой стороны, InsertAfter перемещает один или несколько элементов которые уже существуют в DOM после выбранных элементов ( На самом деле, этот метод можно назвать MoveAfter ):

$("#sMore")                    // Find the element with id `sMore`
    .insertAfter("#pOne");     // Move it to paragraph one

Результат:

<p id="pOne">Para 1</p><span id="sMore">More</span>
<p id="pTwo">Para 2</p>
14
ответ дан 26 November 2019 в 20:56
поделиться
$("p").insertAfter("#foo");

==

$("#foo").after("p")
5
ответ дан 26 November 2019 в 20:56
поделиться

Проверьте документацию :

$("#foo").after("p")

совпадает с:

$("p").insertAfter("#foo");
2
ответ дан 26 November 2019 в 20:56
поделиться

after (content) Возвращает: jQuery

Вставляет содержимое после каждого из совпадающих элементов.

insertAfter (selector) Возвращает: jQuery

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

1
ответ дан 26 November 2019 в 20:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: