удаление jQuery parent.parent - PullRequest
       2

удаление jQuery parent.parent

0 голосов
/ 12 ноября 2009

Я обрабатываю событие нажатия гиперссылки с помощью функции javascript. Я использую ajax метод jQuery для удаления записи. Затем я хочу удалить только что удаленный элемент со страницы. Структура страницы выглядит следующим образом:

<ul>
  <li>
    <div id="div1"></div>
    <div id="div2">
      <a id="DeleteItem">This is the hyperlink in question</a>
    </div>
  </li>
</ul>

Я хочу удалить элемент li. Я предполагаю, что я бы использовал следующее, чтобы удалить его:

$("a#DeleteItem").parent.parent.remove();

Однако это вызывает исключение, сообщающее, что parent.parent является нулем или не является объектом. Я также пробовал только на один уровень вверх ($ "a # DeleteItem"). Parent.remove ();), но затем получаю исключение, заявляющее, что объект не поддерживает это свойство или метод.

Что я делаю не так?

Ответы [ 3 ]

11 голосов
/ 12 ноября 2009

Это не работает, потому что parent является функцией:

$("a#DeleteItem").parent().parent().remove();

Вы также можете использовать функцию closest:

$("a#DeleteItem").closest('li').remove();
3 голосов
/ 12 ноября 2009

Попробуйте:

$("#DeleteItem").parents("li:first").remove();

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

0 голосов
/ 12 ноября 2009

Прежде всего, у вас есть некоторые основные синтаксические ошибки: используйте «parent ()» вместо «parent»

Вы хотите удалить «li» и все его дочерние элементы (включая элемент, на который нажали), или вы просто хотите удалить окружающие теги «li»?

Если это первый случай, то вам нужно сделать следующее:

<a id="DeleteItem" onclick="$(this).parent('div').parent('li').remove();">This is the hyperlink in question</a>

Greg, parent (). Parent (). Parent () ... будет работать нормально из-за возможности объединения в jQuery. Я использовал это много раз в различных проектах.

Квинтин, ваш подход может работать не во всех случаях, поскольку он будет нацелен только на первый тег 'li' в неупорядоченном списке, где их может быть много.

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