在同一段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。谢谢!
展开
 我来答
创世宇图
2013-09-18 · TA获得超过375个赞
知道答主
回答量:29
采纳率:0%
帮助的人:19.3万
展开全部
缓存问题. 在ajax访问链接后面加一个时间戳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火月光
2013-09-16 · 超过11用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:10.2万
展开全部
哥哥,你怎么调用的没写出来啊,虽然我很确定你是作用域(scope)的问题但是不见调用的代码问题无法解决啊
更多追问追答
追问
想详细叙述一下,超过字数最大值,我把问题的详细情况写在“补充问题”里面了,麻烦看下,谢谢!!
追答
首先,ajax这种异步获取数据的方式本身有延时,也就是说你点击之后不可能直接看到结果(除非网速特别快),所以如果你是快速的连续点击很有可能,你点第三个的时候第二个数据才刚刚返回,所以只有第二条加载上了,第三条没啊加载上。
对于这种情况,建议你用 alert(newsid);或者console.log(newsid)(注:非IE浏览器按f12)去看一下穿过来的数据是否正确,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式