2016-03-07 3 views
2

У меня есть система шаблонов, которая за некоторыми исключениями должна удалять элементы DOM после добавления их в DOM.Jquery remove() динамически создаваемые элементы

Обычно я создаю объект jquery со строкой шаблона, который у меня есть. Напр .:

var template = "<div><div class='itenToRemove'>REMOVE!</div><div>DO NOT REMOVE!</div></div>" 

var $elementToAppend = $(template); 

Но иногда мне нужно, чтобы удалить некоторую часть элемента, как

$elementToAppend.remove('.itenToRemove') 

Но это не работает! Почему нет? По-видимому, только уже вставленные элементы в DOM работают с методом remove.

Я создал jsFiddle, которая иллюстрирует мою проблему: https://jsfiddle.net/raphaeldovale/mz6Lrrbh/1/

+1

http://api.jquery.com/remove передача селектора в .remove() не делает то, что вы думаете, что он делает. –

+0

Я вижу. Он работает как фильтр, а не находка. Спасибо. –

ответ

5

Попробуйте это:

$elementToAppend.find(".itemToRemove").remove(); 

Пример: https://jsfiddle.net/DinoMyte/mz6Lrrbh/3/

PS: Там неправильно написано 'itenToRemove', который должен быть 'itemToRemove'

+0

Я понимаю, что метод selector in remove работает как фильтр, а не как метод find. Мой плохой, спасибо! –

+0

Не беспокойтесь. Извините, не смог включить подробные данные ответа вовремя, но предположил, что вы сами это поняли :) – DinoMyte

Смежные вопросы