Вы можете использовать .closest()
, чтобы идти вверх по дереву, пока не будет найдено совпадение.Здесь он лучше подходит, чем .parents()
, который отфильтровывает все родительские элементы ссылки (которые могут содержать много элементов в большей разметке), тогда как .closest()
останавливается, когда найдено совпадение.
$('li.vote a, li.flag a').click(function () {
var id=$(this).closest('div.post').attr('messageid');
});
Еще одна важная вещь:
Для хранения произвольных данных на элементах HTML следует использовать атрибуты data-
(которые были введены в HTML5стандарт).
Итак, в вашем примере HTML будет выглядеть следующим образом:
<div data-rownumber="0" data-messageid="112" class="post"...
Другое преимущество (помимо действительного документа HTML) заключается в том, что вы можете просто получить эти данные с помощью jQuery .data()
function :
var id=$(this).closest('div.post').data('messageid');
jsFiddle Demo с data-
атрибутами