JQuery: обновите только следующий div с определенным классом

У меня есть форма, которая отправляет событие jQuery .ajax каждый раз, когда значение меню изменяется. Функция jQuery запрашивает в базе данных цену продукта, а затем обновляет div с классом «.price» с результатом. На странице есть пять таких форм, и у каждой есть блок div с классом ".price".

/* Variation Price Query */
$(".varSel").live("change", function(){
    var formdata = $(this).parents('form').serialize();
    $.ajax({
        type: "POST",
        url: "library/varPrice.php",
        data: formdata,
        success: function(html){
    $('.price').html(html);

      }
    });
});

Проблема, с которой я столкнулся, заключается в том, что функция обновляет все div с классом «.price», а не только следующим div. Я пробовал что-то вроде:

$(this).next('div.price').html(html);

Но ничего не возвращает.

Ниже приведен пример HTML-формы:

<form name='addToCart' id='addToCart7' action='cart.php?action=add' method='post'>
<ul class='vars' id='varlist_p7'>
    <li><label for="Size">Size</label> 
    <select id="Size" name="Size" class='varSel'>
        <option>
            1oz
        </option>

        <option>
            4oz
        </option>

        <option>
            8oz
        </option>
    </select>
    </li>

    <li>
        <div class='price'>
            $ 3.00
        </div>
    </li>

    <li><input type='submit' class='buynow' value=''></li>
</ul>
</form>

person superUntitled    schedule 07.03.2009    source источник


Ответы (1)


поскольку div.varSel и div.price не являются братьями и сестрами, вам придется пойти глубже, чем next ()

$(this).parent().next("li:has(.price)").children(".price").html(html)

должно сработать

person cobbal    schedule 07.03.2009
comment
спасибо за предложение, это все еще обновляет все div с классом .price - person superUntitled; 07.03.2009
comment
Хм ... может быть, назначить $ this = $ (this) внутри внешней функции. Может быть, $ (this) внутри функции успеха относится к чему-то другому? - person cobbal; 07.03.2009