2015-04-09 2 views
1

Посмотрите на этот фрагмент:JQuery .remove (Селектор) не работает

var div = $('#createDrugForm'); 

div.remove('input[type=hidden]'); 
//the hidden field is still there 

div.find('input[type=hidden]').remove(); 
//the hidden was removed 

Почему первый метод удаления не работает?

+0

функция удаления принимает строку, а не селектор в качестве входа – madalinivascu

+0

читать этот документ https://api.jquery.com/remove/ –

+1

метод выбора 'remove', используется в' filter' внутри, а не 'find' , – dfsq

ответ

3

При выборе селектора для метода $.fn.remove этот селектор используется для фильтрации уже выбранной коллекции (см. $.fn.filter), но не для поиска новых дочерних элементов (см. $.fn.find).

Например, если у вас есть этот HTML структура:

<div class="div a">a</div> 
<div class="div b">b</div> 
<div class="div c">c</div> 

вы можете удалить .a DIV с этим кодом

$('.div').remove('.a'); 

В вашем случае вам нужно использовать find метод, а затем удалить найденные входы ,