[英]jquery function .html .text not working when ajax call inside .each
我正在使用 jquery ajax 函數從服務器獲取數據,然后遍歷數組並更新 HTML 元素。
返回數據無法更新。
$(document).delegate("#update_balance_btn", "click", function(event){
$.ajax({
url : base_url + "login/get_data",
type : 'POST',
success : function(data) {
$.each(JSON.parse(data) , function(index, val) {
$(".return_balance").text(val + " update success");
//$('.return_balance').empty().append(val + " update success" );
console.log(val); // I can console log all the data
//$(".return_balance").html( val + " update success");
// not wokirng , the val is not inserted to html , only " update success" is inserted
});
},
error : function(request,error){
console.log( JSON.stringify(request) );
}
});
});
我可以在每個函數之后獲取數據, .html
可以更新字符串“更新成功”,但不能在 html 元素中插入 val。
我的 html 元素
<li class="list-group-item">1: <span class="return_balance"> 0 </span></li>
<li class="list-group-item">2: <span class="return_balance"> 0 </span> </li>
<li class="list-group-item">3: <span class="return_balance"> 0 </span> </li>
<li class="list-group-item">4Casino : <span class="return_balance"> 0 </span> </li>
任何幫助將不勝感激謝謝
您正在做的是,您正在替換所有具有return_balance
類的元素的文本
假設您從 API 和屏幕截圖中獲取數據,您可以編寫類似
$.each(JSON.parse(data) , function(index, val) { $(".return_balance").eq(index).html(val + " update success"); });
如果您仍然沒有獲得所需的輸出,只需發布您在此之后獲得的錯誤和輸出
為要使用結果更新的每個span
元素指定一個 ID。 然后按 ID 選擇每個跨度。
您的代碼只是在每次迭代中更新所有元素。 因此,當然,您只會在任何地方看到最后更新的值。
$.each(JSON.parse(data) , function(index, val) {
$(".return_balance #" + index).text(val + " update success");
});
<li class="list-group-item">1: <span class="return_balance" id="1"> 0 </span></li>
<li class="list-group-item">2: <span class="return_balance" id="2"> 0 </span> </li>
<li class="list-group-item">3: <span class="return_balance" id="3"> 0 </span> </li>
<li class="list-group-item">4Casino : <span class="return_balance" id="4"> 0 </span>
</li>
這是因為您使用“return_balance”類更改了所有跨度的文本。 最后返回的 val 是 0,所以 all 的最終值也是 0。雖然你發布的結果有一個 '1102.07' 對吧?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.