如何从AJAX响应的JSON对象中获取cartcount变量值?
解决AJAX响应中获取cartcount值的问题
嘿,我一眼就看出问题所在啦——你完全没必要用jQuery的$()函数去包裹response.cartcount!因为response是一个普通的JavaScript对象,不是DOM元素,直接通过属性访问就能拿到你要的cartcount值。
问题出在哪?
你写的var bill = $(response.cartcount);是把字符串"1"传给了jQuery构造函数,这时候jQuery会尝试在DOM中查找匹配这个选择器的元素(显然找不到),所以最终bill会是一个空的jQuery对象,这就是你拿不到正确值的原因。
正确的写法
直接通过.运算符访问对象属性就行,如果需要把字符串转成数字类型,还可以用parseInt或者Number处理:
$.ajax({ url: app_config.ajax_cart_add, type: 'POST', data: data, dataType: "json", beforeSend: function() { }, success: function(response) { if (response.success === true) { console.log(response); // 直接获取cartcount的字符串值 var bill = response.cartcount; // 如果需要数字类型,就用下面这行 // var bill = parseInt(response.cartcount, 10); console.log(bill); // 现在会输出"1"或者1 App.success('Item was successful.'); } if (response.success === false) { App.error('There was a proble'); } } });
验证一下
修改后再运行代码,console.log(bill)就会输出你期望的"1"(如果转成数字就是1),完全符合你的需求啦!
内容的提问来源于stack exchange,提问作者ian
相关产品推荐
相关产品推荐

