Удалить элементы и содержимое перед элементом - PullRequest
3 голосов
/ 01 июня 2010

Я пытаюсь удалить элементы и содержимое перед ссылкой внутри div, когда пользователь нажимает кнопку. Каков наилучший способ сделать это?

<div id="dialog" class="window">  

         //will be inserted a <select> element and few text here 
         //but I want to clear them after the user click a button

    <a href="#" class="close">Close it</a>  // I want to keep this <a> link.    

    </div>  

Мой Jquery

$('.model').click(function(e) {  

   $("#dialog").empty();  //I can't use this because <a> will be deleted. Any better ideas?         

});

Спасибо за ответ ...

Ответы [ 4 ]

5 голосов
/ 01 июня 2010

Просто оберните все эти элементы в div и удалите их

$('#select-wrapper').remove();

или сделай это немного дружелюбнее

$('#select-wrapper').fadeOut(500, function() { $(this).remove(); });
1 голос
/ 01 июня 2010

Вы действительно хотите сохранить эту a ссылку, или вы просто хотите, чтобы этот div содержал ссылку, которая впоследствии будет выглядеть так же?

Почему бы просто не перезаписать innerHTML с помощью <a href="#" class="close">Close it</a>?

Я понимаю, что если эта ссылка каким-то образом изменилась за пределами вашего ведома или контроля, вам придется сохранить ее, но если это не так, то двойник сработает.

1 голос
/ 01 июня 2010

Вы можете сделать это:

$('.model').click(function(e) {  
  $("#dialog").children(":not(.close)").remove();
});

Это просто удаляет всех детей, использующих .remove() без класса close. Или просто клонируйте и заново добавьте ссылку, используя .clone(), например:

$('.model').click(function(e) {  
  $("#dialog a.close").clone(true).appendTo($("#dialog").empty());
});
1 голос
/ 01 июня 2010

попробуйте поместить контент, который вы хотите удалить, в свой собственный div. Тогда будет просто jquery, чтобы скрыть / удалить div при событии click.

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