Как получить значение jquery в выбранном блоке?

217
12 декабря 2016, 10:09

Ребят, всем привет. Есть такая верстка:

<div class="product_list">
<input type="hidden" value="1" name="id"/>
<button class="add_cart">Добавить<span></span></button>
</div>
<div class="product_list">
<input type="hidden" value="2" name="id"/>
<button class="add_cart">Добавить<span></span></button>
</div>
<div class="product_list">
<input type="hidden" value="3" name="id"/>
<button class="add_cart">Добавить<span></span></button>
</div>

Когда нажимаю на "добавить", я хочу получить значение inputa name='id'. Как это реализовать из данной верстке?

Answer 1
$(document).on('click', '.add_cart', function() {
    var id = $(this).prev().val();
    alert(id);
});

или если вёрстка таки поменяется

$(document).on('click', '.add_cart', function() {
    var id = $(this).closest('.product_list').find('input[name="id"]').val();
    alert(id);
});
Answer 2

jsfiddle.net/30dw5ncs/

Вот оптимальнее вариант, на родном JS

jsfiddle.net/30dw5ncs/1/

$('.add_cart').on('click', function(){ 
    var id = this.previousElementSibling.value; 
     
    alert(id); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="product_list"> 
<input type="hidden" value="1" name="id"/> 
<button class="add_cart">Добавить<span></span></button> 
</div> 
 
<div class="product_list"> 
<input type="hidden" value="2" name="id"/> 
<button class="add_cart">Добавить<span></span></button> 
</div> 
 
<div class="product_list"> 
<input type="hidden" value="3" name="id"/> 
<button class="add_cart">Добавить<span></span></button> 
</div>

Answer 3

Решение строится на основе этих 2х вещей:

  1. Get the siblings of each element in the set of matched elements, optionally filtered by a selector

  2. Attribute Equals Selector

READ ALSO
Не работает анимация изображения

Не работает анимация изображения

Всем приветХочу реализовать анимацию изображения при клике

244
Передать значение функции в value inputa

Передать значение функции в value inputa

Добрый день! Помогите, пожалуйста, разобраться

249
Blur эффект с помощью jQuery

Blur эффект с помощью jQuery

Есть div, его ширина 1000x300, внутри него есть img - его ширина 150x150

214
Проблемы с логинизацией

Проблемы с логинизацией

Есть две формы:

214