Я вставил элементы в DOM с помощью appendTo()
. Я пытаюсь пройти DOM из добавленных элементов, чтобы получить ссылку на элемент, к которому добавлены прикрепленные элементы. Но это, похоже, не работает для меня. Я попытался устранить неполадки, выведя результат из parent()
на консоль. Каждый раз, когда я отступаю на один уровень, я получаю результат от parent()
, пока не дойду до родителя добавленного элемента. В этот момент parent()
возвращает пустой набор.Получить родительский элемент добавленного элемента
Вот пример кода, чтобы проиллюстрировать эту проблему:
<div class="menu">
<span class="like current"></span>
<span class="done"></span>
<span class="add"></span>
<span class="report"></span>
<div class="panel">
<div class="panel-content">
<p>This function is not yet implemented</p>
<p>
<a class="cancel" onclick="cancel_panel(this)">Cancel</a>
</p>
</div>
</div>
</div>
был приложенный к div.menu
с appendTo()
и div.panel-content
был приложенный к с appendTo()
То, что я пытаюсь достичь следует удалить класс current
от span.like
при нажатии на ссылку «Отмена».
Я пробовал:
$(elem).closest("div.menu").children("span.current").removeClass("current");
(где эль является ссылка на a
элемент ссылки Отмены)
Но это не работает. $(elem).closest("div.menu")
возвращает пустой набор вместо div.menu
В дальнейшем устранении неисправностей, $(elem).parent()
дает мне ожидаемую ссылку на p
теге, $(elem).parent().parent().parent()
дает мне ожидаемую ссылку на . Но $(elem).parent().parent().parent().parent()
возвращает пустой набор.
Что здесь происходит? Не присоединяются ли присоединенные элементы так же, как реальные элементы при обходе DOM? Разве jquery освобождает сюжет с вложенными дополнениями? Как я могу получить ссылку на страницу div.menu
?
Пространства обычно не являются самозакрывающимися. Какой у тебя тип? – j08691
в реальном коде они не являются - код здесь просто усечен/упрощен с целью вопроса – AidanCurran
Кажется, здесь работает ... http://jsfiddle.net/hungerpain/mEJbF/1/ все, что я изменил, было то, что я вынул «onclick» и сделал его событием 'click' jQuery – krishgopinath