Что быстрее — заменить с помощью или insertAfter (и скрыть старый элемент) в jQuery

#jquery #replacewith #insertafter

#jquery #заменить с #insertafter

Вопрос:

Я хочу изменить некоторые элементы на странице. (например, я изменю входные данные на структуры divs).

Что быстрее? Сделать это с помощью replaceWith(). Или вставить структуру div после ввода, а затем скрыть ввод?

Комментарии:

1. Взгляните на jsperf.com

Ответ №1:

Если вы говорите о чем-то вроде встроенной функции редактирования, я бы использовал…

 replaceWith()
  

В противном случае вы бы дублировали содержимое на своей странице, что может вызвать другие проблемы.

РЕДАКТИРОВАТЬ: В некоторых случаях я также использую…

 .empty().html()
  

Все действительно зависит от того, чего вы пытаетесь достичь.

РЕДАКТИРОВАТЬ: Вот скрипт, основанный на вашем комментарии…

http://jsfiddle.net/wdm954/WgjL5/2/

Я бы все равно выбрал replaceWith() вместо того, чтобы иметь несколько экземпляров кнопки в вашем коде.

Комментарии:

1. Я меняю все `<тип ввода =’кнопка’>’ на моей странице на некоторые divs (div-структура, которая создает кнопку, которая мне нужна)

2. @wdm Почему ты делаешь empty() в первую очередь? html() уже заменяет все.

Ответ №2:

Я только что провел несколько тестов со своим скриптом, и JS profiler не показал никакой реальной разницы между ними (я имею в виду скорость). Поэтому я предпочитаю replaceWith в этом скрипте.