如何解决在jquery中创建一个数组,并检查它是否是一个元素
|| 使用ajax和json获取一些数据后,我有了此功能 if(data.length != 0) {
var arreglo = new Array();
$.each(data,function(index,data) {
if (jQuery.inArray(data.id,arreglo) == -1) {
arreglo.push(data.id);
$(\"#envivo\").append(\"<li>Titulo: \" + data.titulo + \" Link: \" + data.link + \" Fuente: \" + data.fuente + \"</li>\");
}
});
}
}
$(document).ready(function() {
var fecha = Math.round((new Date()).getTime() / 1000);
setInterval(function() {
$.ajax({
data: \"fecha=\"+fecha,type: \"GET\",dataType: \"json\",url: \"data.PHP\",success: function(data){
restults(data);
}
});
},5000);
});
我正在尝试做什么
检查是否从ajax检索了任何数据
创建一个数组来存储data.id
从ajax内部循环数据
检查data.id是否在[2]中创建的数组中
如果id不在数组中,我将其保存到并封装一些数据
step 4
不起作用,是5的一部分(保存到数组中)
有任何想法吗?
提前致谢
解决方法
inArray函数使用身份比较运算符(===)。
如果数据将id作为字符串返回,但您要解释的是数字,则将导致问题。
\“ 9 \” ==== 9 <-错误
\“ 9 \” == 9 <-正确
,我已经尝试过您的代码,并且效果很好:
http://jsfiddle.net/Jfq6d/
您必须检查所获得的数据是否确实符合您的期望。例如,您可以使用Firefox的FireBug插件中的“网络”选项卡来检查在AJAX调用中获得的响应。
编辑:
要重用该函数,必须在函数外部创建数组:
var arreglo = [];
function restults(data) {
if(data.length != 0) {
$.each(data,function(index,data) {
if (jQuery.inArray(data.id,arreglo) == -1) {
arreglo.push(data.id);
$(\"#envivo\").append(\"<li>Titulo: \" + data.titulo + \" Link: \" + data.link + \" Fuente: \" + data.fuente + \"</li>\");
}
});
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。