【发布时间】:2018-02-08 15:52:48
【问题描述】:
我有一个带有 ajax 调用的 jquery 函数。即使它应该可以工作,我也无法得出总价。 .cart-price 类在 .cart-body 内,所以我不认为它是模板的问题。
function refreshCart(){
console.log("in current cart")
var cartTable = $(".cart-table")
var cartBody = cartTable.find(".cart-body")
// $(cartBody).empty()
//cartBody.html("<h1>Changed</h1>")
var productRows = cartBody.find(".cart-product")
var currentUrl = window.location.href
var refreshCartUrl = '/api/cart/'
var refreshCartMethod = "GET";
var data = {};
$.ajax({
url: refreshCartUrl,
method: refreshCartMethod,
data: data,
success: function(data){
console.log("success")
console.log(data)
if (data.products.length > 1){
productRows.html(" ")
$(cartBody).empty()
$.each(data.products, function(index, value){
console.log(value)
cartBody.append("<tr><td>" + value.name + "</td><td>" + value.price + "</td></tr>")
})
// console.log(data.total)
cartBody.find(".cart-total").text(data.total)
} else {
window.location.href = currentUrl
}
},
error: function(errorData) {
console.log("error")
console.log(errorData)
}
})
}
})
【问题讨论】:
-
请调试您的代码,找出问题所在,然后提出更准确的问题。
-
您是否检查过 AJAX 调用是否正在进行?而且它成功了吗?
console.log()呼叫是否显示并显示正确的信息? -
正在进行 ajax 调用。我可以使用 console.log 来检查值,它返回的总数是正确的。
-
even though it should be working你能发布data包含的值吗? -
单步执行您的代码,您的代码是否进入您的
if (data.products.length > 1){?如果console.log(value)打印在each中,那么我们需要查看var cartBody = cartTable.find(".cart-body")所指的标记。请使用相关代码创建Minimal, Complete, and Verifiable example。显然,您可以在创建演示代码时对data的内容进行硬编码,但如果是选择器问题,它可能已经帮助您解决问题。
标签: javascript jquery ajax