Как получить данные из родительского блока на jquery?

Рейтинг: 0Ответов: 2Опубликовано: 01.04.2015

Есть HTML

<div class="new_item">
  <input type="text" id="name" class="form-control">
  <input type="text" id="url" class="form-control">
  <a href="#" class="save">Сохранить</a>
</div>
<div class="new_item">
  <input type="text" id="name" class="form-control">
  <input type="text" id="url" class="form-control">
  <a href="#" class="save">Сохранить</a>
</div>

Уникальный ID блоку установить не представляется возможным. Как получить содержимое input блока в котором был произведен клик по ссылке <a href="#" class="save">Сохранить</a>?

    Пробывал так:
    $('body').on('click','.new_item a#save', function(){
       alert($(this).parent('input#name').val());
       alert($(this).parent('input#url').val());
    });
   //Возвращает undefined

Ответы

▲ 2Принят

Попробуйте так:

   alert($(this).parent().find('#name').val());
   alert($(this).parent().find('#url').val());
▲ 1

Замените id на class и используйте функцию siblings.

Примерно так

<div class="new_item">
  <input type="text" class="name" class="form-control">
  <input type="text" class="url" class="form-control">
  <a href="#" class="save">Сохранить</a>
</div>

<div class="new_item">
  <input type="text" class="name" class="form-control">
  <input type="text" class="url" class="form-control">
  <a href="#" class="save">Сохранить</a>
</div>

$('a').on('click', 
        function() {
            alert($(this).siblings('.name').val());    
        })