2014-09-30 17 views
-1

我試圖從服務器返回數據後更新/刷新特定。 我想更新span class =「answer-final-score」。我使用類而不是ID,因爲這個HTML會動態生成多次。更新範圍使用jQuery查找阿賈克斯調用

了jQuery($( '等級')。在...大幹快上的DIV CLASS =明星一旦用戶點擊執行 「答案得分」

$('.rating').on('rating.change', function (event, value, caption) { 
 

 
      $(this).closest('.answer-container').find('.answer-score-final').text('aaa'); 
 

 
// above works standalone but not in .done section of $.ajax call below 
 
       
 

 
      .done(function (result) {      
 
       var jsonReturn = JSON.parse(result); 
 
             
 
        $(this).closest('.answer-container').find('.answer-score-final').text(jsonReturn.score);      
 
      }) 
 
    
 
<div class="answer-container">   
 
      <div class="answer-score"> 
 
       Score (<span class="answer-count">@Model.ElementAt(i).Count)</span><br /><br /> 
 
       <span class="answer-final-score">@(Math.Round((decimal)(Model.ElementAt(i).RatingScore)))</span> 
 
      </div> 
 

 
      <div class="answer-rateIt"> 
 
       <input data-id="@Model.ElementAt(i).OptionID" type="number" class="rating" min=0 max=5 step=0.5 data-size="sm"> 
 
       <div class="hover">hover</div> 
 
      </div> 
 
     </div>

回答

0

不是JS專家,所以我不知道這是否是最好的方法,但這是有效的。

var answerScoreFinal = $(this).closest('.answer-container').find('.answer-score-final'); 
 

 
// had to assign span object to a variable before making Ajax call, then 
 
// use answerScoreFinal.text('value') in the Ajax .done section. 
 
       
 

 
      $.ajax({ 
 
       type: "post",    
 
       ... 
 
      }) 
 
      .done(function (result) {      
 
       var jsonReturn = JSON.parse(result); 
 
             
 
       answerScoreFinal.text(jsonReturn.score);      
 
      })

1

$(this).closest('.answer-container').find('.answer-score > .answer-score-final').text('aaa');

應該爲你工作,而是再次使用發現,只要使用原有的查找,找到它的一個子。

+0

感謝尼克。我的問題是我提到了錯誤的名字(.answer-final-score <錯誤)。我修正了它,並在我的測試用例中工作 - 但是,我現在真正的問題是它不能在.djax部分的$ .ajax回調函數中使用。我編輯了我的原始問題以反映這一點。再次感謝。 – nanonerd 2014-09-30 17:38:09

+0

嗯,我很感謝你改變這個問題,以便我的答案毫無意義。 我想你應該問一個新的問題......但我不制定規則 – 2014-09-30 17:40:30

+0

另外,從anscestor div,我發現我可以直接使用.find('。answer-score-final )的.text( 'AAA')。再次,我的概率之前是錯誤的名字...... doh! – nanonerd 2014-09-30 17:40:53