当我尝试运行我的代码时,我输出li元素中的内容并将其与api中的新数据进行比较。 (我知道新数据与之前的数据相同)。然而我的字符串比较返回false。我在每个字符串上都使用了alert,我发现它们是相同的字符串。这是我的代码
<!DOCTYPE html>
<html>
<head>
<title>Boot Camp</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<script src="refreshview.js"></script>
<script src="loadview.js"></script>
<script type="text/javascript">
loadview();
</script>
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
</head>
<body>
<div data-role="header">
<h1>New DVD Releases</h1>
</div>
<div data-role="content" >
<ul data-role="listview" id="datalist"></ul>
</div>
</body></html>
我调用loadview将li elemts放入我的ul
function loadview() {
$.ajax({
url:'http://api.rottentomatoes.com/api/public/v1.0/lists/dvds/new_releases.json? page_limit=16&page=1&country=us&apikey=k4uaze4937mw3hf82upstxqw',
type:'GET',
dataType:'jsonp',
success:function(data){
var movies = data.movies;
$.each(movies, function() {
$('#datalist').append('<li><a><img src='+this.posters.thumbnail+' class="ui-li-thumb"><h3 class="ui-li-heading">'+this.title+'</h3><p class="ui-li-desc">DVD Date: '+this.release_dates.dvd+'</p></a></li>');
//get data from ul
});
$('#datalist').listview('refresh');
refreshview();//every 30 seconds
},
error: function(xhr, textStatus, errorThrown){
alert('request failed :'+xhr);
alert('request failed :'+textStatus);
alert('request failed :'+errorThrown);
}
});
};
并且在代码加载之后我调用refreshview来运行相同的api查询并比较li中的值和我上网的元素(应该是相同的)。
function refreshview() {
$.ajax({
url:'http://api.rottentomatoes.com/api/public/v1.0/lists/dvds/new_releases.json?page_limit=16&page=1&country=us&apikey=k4uaze4937mw3hf82upstxqw',
type:'GET',
dataType:'jsonp',
success:function(data){
var movies = data.movies;
var lis = new Array();
var i=0;
$("#datalist").children("li").each(function()
{
lis.push($(this).text());
});
$.each(movies, function() {
alert (this.title+"DVD Date: "+this.release_dates.dvd+"\n"+lis[i]);
alert ($.trim(this.title+"DVD Date: "+this.release_dates.dvd)==$.trim(lis[i]));
if (($.trim(this.title+"DVD Date: "+this.release_dates.dvd))==$.trim(lis[i]))
{
alert ("hi"+i);//add the new item to listofchanges
i++;
}
});
},
error: function(xhr, textStatus, errorThrown){
alert('request failed :'+xhr);
alert('request failed :'+textStatus);
alert('request failed :'+errorThrown);
}
});
};
我的提醒显示2个字符串始终相同。但比较“==”总是返回false。我甚至尝试使用修剪,但它只修复了第一个。
为什么==返回false?那里有非法人物吗?如何将这两个字符串转换为相同的“格式”
答案 0 :(得分:0)
好吧,如果它们相同,我只是递增,所以lis数组中的第一个元素需要匹配刷新的movies数组中的第一个元素。它们是同一部电影吗?或者刷新是否以不同的顺序将它们带回来?换句话说,教父在loadingview中的位置0,但在refreshview中的位置5?