jQuery Получить значение двух текстовых полей внутри <p> или <div>

0

Мне нужно получить значения двух текстовых полей, которые находятся внутри <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);

});
  • 0
    Есть ли причина, по которой у них нет уникальных идентификаторов? Они создаются динамически без заданного количества?
  • 0
    Да. Они создаются динамически. просто так, как ты их там видишь.
Теги:

1 ответ

1
Лучший ответ

Я бы использовал closest чтобы найти первый родительский экземпляр rawData, а затем отфильтровать оттуда:

$('.approve,.delete').on('click', function() {
    var $raw = $(this).closest(".rawData");
    console.log($raw.find("minWeight").val());
    console.log($raw.find("minWeight").val());
});
  • 0
    closest ("p") здесь более эффективен
  • 1
    @jmenezes, обратите внимание на использование «on» вместо «live». Это с 1.7. Имейте это в виду также. api.jquery.com/on

Ещё вопросы

Сообщество Overcoder
Наверх
Меню