Почему метод .remove () также не влияет на переменную, на которую он установлен? - PullRequest
0 голосов
/ 11 февраля 2020

Я новичок в Javascript и jQuery, так что, возможно, это базовая концепция c, но в следующем коде:

var toRemove = $("p").remove();   
$("div").append(toRemove);

Я удаляю элемент p, который я видел, как работает в пользовательском интерфейсе, а затем я добавляю его. Поскольку он удален, я ожидаю, что он ничего не добавит. Но в интерфейсе я вижу, что это так. Почему это так?

Демо: https://jsfiddle.net/4mthn93z/

Ответы [ 2 ]

2 голосов
/ 11 февраля 2020

Как правило, jQuery методы при вызове для наборов узлов возвращают одну и ту же коллекцию. Это то, что позволяет вам цеплять методы. Например, $("#id").html("Some contnet").hide();

То, что что-то было удалено из DOM, не означает, что объект javascript / jquery прекратил свое существование, он просто больше не является частью DOM. Присвоив результат метода переменной, вы сохранили эти объекты для последующего использования. На самом деле это очень удобная функция.

1 голос
/ 11 февраля 2020

Потому что toRemove - это функция. Вы можете попробовать ..

var toRemove = $("p").remove();   
$("div").append(toRemove());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...