JQuery. Навигация по удаленному элементу

0

Скажем, у меня есть:

<div>
    <input type="button">
</div>
<img src="path/to/img.jpg">

И я хочу скрыть кнопку, а затем скрыть изображение, я мог бы сделать это с помощью:

$('input[type="button"]').hide().parent().next('img').hide();

Когда я хочу удалить элемент, как я могу затем перейти к изображению аналогичным образом?

$('input[type="button"]').remove().parent().next('img').hide();

Не делает трюк.

Скрипт: http://jsfiddle.net/f8xN2/

TL;DR: Можно ли продолжить перемещение DOM с текущей позиции после удаления элемента?

  • 5
    TLDR: Нет. Элемент был удален из DOM. У него больше нет родителей.
  • 0
    Что не так с кэшированием элемента, скрытием img и удалением элемента? Если бы ваш селектор был более простым, вы могли бы просто использовать .addBack , но последовательность этих действий кажется неловкой.
Теги:

4 ответа

1
Лучший ответ

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

var image = $(this).parent().next('img');
    $(this).remove();
    image.hide();

Проверьте обновленный файл jsfiddle: http://jsfiddle.net/f8xN2/3/

1

Вы можете получить второй элемент перед удалением первого:

var second = $('input[type="button"]').parent().next('img');
$('input[type="button"]').remove();
second.hide();
1

Вы можете сначала сохранить родительский: var divParent = $('input[type="button"]').parent(); а затем удалить элемент и получить доступ к изображению с помощью divParent.next('img').hide();

0

Вы не можете цеплять после удаления элемента

делать так

        $(function(){
        $('#ex1').click(function(){
            $(this).hide().parent().next('img').hide();
        });
        $('#ex2').click(function(){
            //hide image
            $(this).parent().next('img').hide();
            //then remove
            $(this).remove()
        });
    })

Ещё вопросы

Сообщество Overcoder
Наверх
Меню