美元.基于ajax的JSON响应的inArray
$.inArray on JSON response from ajax
我试图检查$.inArray
从ajax调用收到的数据。但不管我如何检查它-当脚本运行时,它总是-1
。
更新:首次声明shm_kupa
为数组(shm_kupa = [];
)
success: function(data) {
$('ul').html('');
$.each(data, function(i, value){
if ($.inArray(data[i].ID, shm_kupa) == -1){
$('ul').append('<li class="' + data[i].SHM_KUPA + '" data-kupa-id="' + data[i].ID + '">' + data[i].SHM_KUPA + '</li>')
}
console.log($.inArray(data[i].ID,shm_kupa)); - Output: -1
console.log('ID: ' + data[i].ID + ' shm_kupa: ' + shm_kupa); - Output: "ID: 132 shm_kupa: 132,170"
})
}
当我执行console.log
时,它显示的是ID: 132 shm_kupa: 132,170
,所以问题可能不是shm_kupa
,因为它已成功声明。
我找不到这个问题的答案。
$. inarray(),第一个参数是value
(在您的情况下为132),第二个参数必须是array
(这里的"132,170"是一个字符串)。
请将shm_kupa
的值替换为像[132,170]这样的数组;)
例如
var shm_kupa = [132,134];
console.log($.inArray(132,shm_kupa)); // Result 0
这个不行
var shm_kupa = "132,134";
console.log($.inArray(132,shm_kupa)); // Result -1
感谢大家的帮助,但是parseInt()
对收到的数据修复了我的问题。
答:
success: function(data) {
$('ul').html('');
$.each(data, function(i, value){
if ($.inArray(parseInt(data[i].ID), shm_kupa) == -1){
$('ul').append('<li class="' + data[i].SHM_KUPA + '" data-kupa-id="' + data[i].ID + '">' + data[i].SHM_KUPA + '</li>')
}
//console.log($.inArray(data[i].ID,shm_kupa));
//console.log('ID: ' + data[i].ID + ' shm_kupa: ' + shm_kupa); -
})
}
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- 响应动画手风琴不工作
- jQuery$.inArray()总是返回-1和一个对象数组
- 如何从SeleniumWebdriver获取异步Javascript响应
- Ajax调用在Firefox中不会自动响应
- 可以在响应时隐藏iphone上的“播放”按钮以进行视频播放
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- IIS动态HTTP响应标头
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Ajax响应转换
- 使Intro.js工具提示响应
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 美元.基于ajax的JSON响应的inArray
- JQuery while-loop在使用inArray比较优化数组内容时变得无响应