在同一段html中,我从一个js向另一个js传值,值居然变了 10
代码:<scripttype="text/javascript">$(document).ready(function(){$.ajax({type:"POST",url...
代码:
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type:"POST",
url: "../news.do?reqCode=showNewsInHtml&postType=1"+"¤tPage=1",
dataType:"json",
error: function(data){
var objJson = eval( "(" + data.responseText + ")" );//转换后的JSON对象
var pageSize = 10;
var totalCount = objJson.TOTALCOUNT;
$('#countnews').text(totalCount);//共有多少条新闻数据
// eval("window.totalPages = new Object();");
window.totalPages = parseInt(totalCount / pageSize + (totalCount % pageSize == 0 ? 0 : 1));//每页10条,共有多少页
$('#countpages').text(totalPages);//共有多少页
options.totalPages = totalPages;
$('#paging').bootstrapPaginator(options);
var totalString = objJson.ROOT;
var bb =$(document).find("#newslist");
for ( var i = 0; i < totalString.length; i++)
{
var j = i + 1;
bb.append( "<tr><td bgcolor='#FFFFCC'>"+ j
+"</td><td bgcolor='#FFFFCC' ><a href='#'
onclick=showNewsContent("+totalString[i].newsid +")>" +
totalString[i].newsname + "</a></td>"
+ "<td bgcolor='#FFFFCC'>" + totalString[i].newsinputtime + "</td>" + "</tr>");
//alert(totalString[i].newsid);
}
}
})
});
<script type="text/javascript">
function showNewsContent(newsid){
$.ajax({
type:"POST",
url: "../news.do?reqCode=showNewsDetailInHtml&postType=1"+"&newsid="+ newsid,
dataType:"json",
success: function(data){
var bb =$(document).find("#newscontent");
$("#newscontent ").empty();
var i = 0;
bb.append( "<div class='container2'><a href='news.html'><h4>新闻列表</h4></a></div><div class='container2'><h2 style='text-align:center;'>"+data[i].newsname+
"</h2></div><div class='container2' style='height:1px;background-color:blue;''></div>"
+"<div class='container2'>"+ data[i].newscontent
+"</div><div class='container2' style='text-align:right;'><span ></br></br>来源:"+ data[i].newsresource
+" 发布时间:"+data[i].newsinputtime+" </span></div>");
}
});
}
</script>
实现的功能就是点击新闻标题时,调用下面这个showNewsContent(newsid)方法,但是调用的时候newsid传过来的时候居然变了(有时正确有时不对),不知道是什么原因,有没有保证它不变的方法
调用的方法在这里:<a href='#' onclick=showNewsContent("+totalString[i].newsid +")>" + totalString[i].newsname + "</a> 当点击点击newsname时去调用showNewsContent(newsid),现在的问题是调用的时候newsid没有正确的传给showNewsContent(newsid)这个函数,隔一个传对一个,将第一个js中拼接的html全alert出来如下图所示:确定newsid是正确的
是从66到65到64这样顺序和newsname对应的,但是现在实际点击的时候,点击第一条新闻的标题是newsid传给showNewsContent(newsid)是正确的,但是点击第二条的时候穿的是第三条的newsid给了showNewsContent(newsid),点击第三条的时候又正确了,点击第四条的时候传的还是第三条的newsid,点击第五条的时候又正确了,第六条传的是第五条的id,这样重复下来的。到这一页的最后一条,也就是第十条传的是下一页第一条的id。谢谢! 展开
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type:"POST",
url: "../news.do?reqCode=showNewsInHtml&postType=1"+"¤tPage=1",
dataType:"json",
error: function(data){
var objJson = eval( "(" + data.responseText + ")" );//转换后的JSON对象
var pageSize = 10;
var totalCount = objJson.TOTALCOUNT;
$('#countnews').text(totalCount);//共有多少条新闻数据
// eval("window.totalPages = new Object();");
window.totalPages = parseInt(totalCount / pageSize + (totalCount % pageSize == 0 ? 0 : 1));//每页10条,共有多少页
$('#countpages').text(totalPages);//共有多少页
options.totalPages = totalPages;
$('#paging').bootstrapPaginator(options);
var totalString = objJson.ROOT;
var bb =$(document).find("#newslist");
for ( var i = 0; i < totalString.length; i++)
{
var j = i + 1;
bb.append( "<tr><td bgcolor='#FFFFCC'>"+ j
+"</td><td bgcolor='#FFFFCC' ><a href='#'
onclick=showNewsContent("+totalString[i].newsid +")>" +
totalString[i].newsname + "</a></td>"
+ "<td bgcolor='#FFFFCC'>" + totalString[i].newsinputtime + "</td>" + "</tr>");
//alert(totalString[i].newsid);
}
}
})
});
<script type="text/javascript">
function showNewsContent(newsid){
$.ajax({
type:"POST",
url: "../news.do?reqCode=showNewsDetailInHtml&postType=1"+"&newsid="+ newsid,
dataType:"json",
success: function(data){
var bb =$(document).find("#newscontent");
$("#newscontent ").empty();
var i = 0;
bb.append( "<div class='container2'><a href='news.html'><h4>新闻列表</h4></a></div><div class='container2'><h2 style='text-align:center;'>"+data[i].newsname+
"</h2></div><div class='container2' style='height:1px;background-color:blue;''></div>"
+"<div class='container2'>"+ data[i].newscontent
+"</div><div class='container2' style='text-align:right;'><span ></br></br>来源:"+ data[i].newsresource
+" 发布时间:"+data[i].newsinputtime+" </span></div>");
}
});
}
</script>
实现的功能就是点击新闻标题时,调用下面这个showNewsContent(newsid)方法,但是调用的时候newsid传过来的时候居然变了(有时正确有时不对),不知道是什么原因,有没有保证它不变的方法
调用的方法在这里:<a href='#' onclick=showNewsContent("+totalString[i].newsid +")>" + totalString[i].newsname + "</a> 当点击点击newsname时去调用showNewsContent(newsid),现在的问题是调用的时候newsid没有正确的传给showNewsContent(newsid)这个函数,隔一个传对一个,将第一个js中拼接的html全alert出来如下图所示:确定newsid是正确的
是从66到65到64这样顺序和newsname对应的,但是现在实际点击的时候,点击第一条新闻的标题是newsid传给showNewsContent(newsid)是正确的,但是点击第二条的时候穿的是第三条的newsid给了showNewsContent(newsid),点击第三条的时候又正确了,点击第四条的时候传的还是第三条的newsid,点击第五条的时候又正确了,第六条传的是第五条的id,这样重复下来的。到这一页的最后一条,也就是第十条传的是下一页第一条的id。谢谢! 展开
2个回答
展开全部
缓存问题. 在ajax访问链接后面加一个时间戳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哥哥,你怎么调用的没写出来啊,虽然我很确定你是作用域(scope)的问题但是不见调用的代码问题无法解决啊
更多追问追答
追问
想详细叙述一下,超过字数最大值,我把问题的详细情况写在“补充问题”里面了,麻烦看下,谢谢!!
追答
首先,ajax这种异步获取数据的方式本身有延时,也就是说你点击之后不可能直接看到结果(除非网速特别快),所以如果你是快速的连续点击很有可能,你点第三个的时候第二个数据才刚刚返回,所以只有第二条加载上了,第三条没啊加载上。
对于这种情况,建议你用 alert(newsid);或者console.log(newsid)(注:非IE浏览器按f12)去看一下穿过来的数据是否正确,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询