self
относится к текущему классуself
можно использовать для вызова статических функций и ссылочные статические переменные-членыself
могут использоваться внутри статических функцийself
также могут отключать полиморфное поведение, минуя vtable$this
относится к текущий объект$this
может использоваться для вызова статических функций$this
не должен использоваться для вызова статических переменных-членов. Вместо этого используйтеself
.$this
нельзя использовать внутри статических функций
closest (...) получает ближайший родительский узел, а не ближайшего родственника.
На самом деле существует несколько способов сделать то, что вы хотите.
Попробуйте следующее:
var contentId = $(this).siblings("input[name='id']").val();
var contentId = $(this).parent().children("input[name='id']").val();
var contentId = $(this).prev().prev().val();
Вы можете переместить атрибут id
в содержащий
, удалить скрытое поле и просто использовать :
var contentId = $(this).parent().get(0).id;
Преимущество здесь в том, что в будущем вы можете добавлять другие действия, такие как «редактировать» и т. Д., Не беспокоясь о положении брата или сестры.
Красиво и дешево:
var contentId = $(this).parents('li:first').find('.contentId').val();