Как выбрать значение смежного скрытого ввода с помощью Jquery? - PullRequest
5 голосов
/ 20 июня 2009

Когда пользователь нажимает на img в конце следующего «li», я хочу получить значение скрытого ввода двумя предыдущими элементами.

$(document).ready(function(){
    $("#theLists img").click(function(){
        var contentId = $(this).closest("input[name='id']").val();          
    });

Безрезультатно.Есть идеи?Мне нужно установить переменную с идентификатором строки, который в данном случае "64".

Ответы [ 3 ]

10 голосов
/ 20 июня 2009

ближайший (...) получает ближайший родительский узел, а не ближайшего родного брата.

На самом деле, есть несколько способов сделать то, что вы хотите.

Попробуйте это:

var contentId = $(this).siblings("input[name='id']").val();

var contentId = $(this).parent().children("input[name='id']").val();

var contentId = $(this).prev().prev().val();
2 голосов
/ 21 июня 2009

Смотрите полное решение здесь.

Вы можете переместить атрибут id в содержащее <li>, удалить скрытое поле и просто использовать:

var contentId = $(this).parent().get(0).id;

Преимущество здесь в том, что в будущем вы можете добавлять другие действия, такие как «редактирование» и т. Д., Не беспокоясь о положении брата или сестры.

0 голосов
/ 20 июня 2009

Красиво и дешево:

var contentId = $(this).parents('li:first').find('.contentId').val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...