Как скрыть родительский элемент с помощью jquery?

Предположим, что следующий HTML:

  • anchor
  • anchor
  • и следующий Javascript (с использованием jquery 1.3.2):

     function foo(anchor) { alert($(anchor).attr('href')); } 

    Моя цель состоит в том, чтобы иметь возможность скрывать ли, на который нажата кнопка, но я не могу назначить им уникальные идентификаторы. Таким образом, я хочу сделать это позиционно (т. Е. Идентифицировать привязанный конкретный якорь) чем-то вроде $ (anchor) .parent (). Hide ().

    Однако вышеописанное предупреждение возвращает «undefined», поэтому для меня не очевидно, что у меня даже есть правильный объект jquery.

    Как определить, какой объект $ (якорь)? В частности, как узнать, какие атрибуты у него есть, какой class он имеет, какой элемент HTML он и т. Д.?

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

     $(function() { $("a.foo").click(function() { $(this).parent().hide(); return false; }); }); 

    с:

     
  • anchor
  • anchor
  • $(...) в jQuery никогда не является одним элементом HTML; это всегда их список.

    Вы можете использовать .get() для преобразования в обычный список Javascript или, лучше, использовать .each() :

     $(anchor).each(function() { alert(this) }); 

    Это даст вам что-то вроде [object HTMLAElement] . Вам нужно будет использовать for/in чтобы изучить его полностью, но .tagName и .innerHTML , вероятно, достаточно хороши, чтобы понять, где вы находитесь.

    Мне также нравится использовать $(...).css('outline', '1px solid lime') для поиска элементов. Это затрудняет их пропустить и легко определить с помощью Firebug.

    Добавление: я определенно согласен с вышеизложенным ответом о разделении вашего Javascript с вашего HTML. Не подключайте JS.