Мне нужно получить значения двух текстовых полей, которые находятся внутри <p> </p>
поэтому я могу отправить их через ajax. Я застрял в том, как эффективно получать ценности. На этой странице есть несколько <p></p>
и мне нужно только получить значения контейнера <p></p>
который я нажимаю 'Approve'
или 'Delete'
. Мой метод довольно груб. Можете ли вы предложить что-то более элегантное и эффективное?
<body>
<p class="rawData">
<span>
<input class="minWeight" type="text" placeholder="Minimum Weight">
<input class="maxWeight" type="text" placeholder="Maximum Weight">
</span>
<span class="actions">
<i class="icon-accept blue approve"></i>
<i class="icon-reject blue delete"></i>
</span>
</p>
<p class="rawData">
<span>
<input class="minWeight" type="text" placeholder="Minimum Weight">
<input class="maxWeight" type="text" placeholder="Maximum Weight">
</span>
<span class="actions">
<i class="icon-accept blue approve"></i>
<i class="icon-reject blue delete"></i>
</span>
</p>
</body>
$('.approve,.delete').live('click', function() {
var self = $(this);
console.log(self.parent().parent()//find etc);
});
Я бы использовал closest
чтобы найти первый родительский экземпляр rawData
, а затем отфильтровать оттуда:
$('.approve,.delete').on('click', function() {
var $raw = $(this).closest(".rawData");
console.log($raw.find("minWeight").val());
console.log($raw.find("minWeight").val());
});