2015-05-18 2 views
0

это мой код:я не могу получить доступ к элементу с JQuery

<div class="price-all mg-top-40px planolista"> 
            <span class="price1">3x<br>R$</span> 
            <span class="price2">16,<span>63</span></span> 
            <span class="avista">ou R$ 49,90 à vista</span> 
            <select class="form-control form-plan variante" data-idplano="2"> 
                   <option value="2">Light 3</option> 
                    <option value="3">Light 6</option> 
                    <option value="4">Light 9</option>      
            </select> 

и это мои ЯШИ:

$('body').on('change','.variante',function(){ 
    $.get("classes/acao.php", {mudarvalorplano: $(this).attr('data-idplano'), idvariavel: $(this).val()}, function(resposta){ 
     var retorno_reposta = resposta.split("###"); 

     $(this).parent('div').find('.price1').html('something'); 

    }); 

Я не могу изменить содержание класса price2

Что делать? Что-то не так с этим куском кода.

$(this).parent('div').find('.price1').html('something'); 

он не работает

= (

+1

Почему не $ ("price2. ") HTML (" что-то").? – monxas

+0

'this' ссылается на объект jqXHR внутри' $ .get() 'success callback, поэтому используйте замыкание –

+0

, почему эти элементы повторяются в коде, поэтому мне нужно это сделать. –

ответ

0

вы пробовали это способ JQuery

$() HTML ("что-то ")?" Price1.";.

+0

Я просто меняю его на: $ (this) .parent ("div"). Find (". Price1"). Html ("something"); и все еще не работает = ( –

+0

Спасибо, друзья, это было закрытие, отсутствовавшее в методе get, теперь это нормально! –

1

В вашем коде есть только один номер Price1. Для этого вам необходимо пройти. Лучше всего используйте

$('.price1').text('Something'); 

Не нужно использовать .html здесь, я думаю.

+0

Спасибо, друзья, это было закрытие, отсутствовавшее в методе get, теперь это ОК! –

0

Используйте замыкание, потому что внутри $.get() success callback, this относится к объекту jqXHR. См например:

$('body').on('change', '.variante', function() { 
    var $price1 = $(this).closest('.price-all').find('.price1'); 
    $.get("classes/acao.php", { 
     mudarvalorplano: $(this).data('idplano'), 
     idvariavel: this.value 
    }, function (resposta) { 
     var retorno_reposta = resposta.split("###");  
     $price1.html('something');  
    }); 
}); 
0

Вы должны заменить HTML() с текстом()

Смежные вопросы