Я бы, вероятно, поместил класс на <li>
, чтобы у меня был известный и легко найти контейнер, затем вы подойдете к <li>
и вернетесь вниз, чтобы найти то, что вас интересует :
<ul>
<li class="container">
<!-- ... -->
</li>
</ul>
А затем простая комбинация closest
и find
дает вам то, что вы хотите:
$('select').change(function() {
var $cont = $(this).closest('.container');
var amount = $cont.find('.listingAmount').text();
var price = $cont.find('.listingPrice').text();
// ...
});
Демо: http://jsfiddle.net/ambiguous/kAejF/
Преимущество этого по сравнению с попыткой использования prev
и prevAll
заключается в том, что ваш jQuery очень слабо связан с вашим HTML: вам нужно только простое сдерживание, вложенность и внутренняя структура не имеют значения.