返回json数据成功,但append()方法失败

lihzsonny 2016-03-21 01:58:04
以下是用jquery,可得到正常的返回对象的
$(document).ready(function(){

$.ajax({
url:"handler/turnpagepic.ashx",
type:"POST",
dataType:"json",
data:{channel:$channel,lanmu:$lanmu,core:$core,page:$page},
success:function(data){
data=$.parseJSON(data);
var contentbox=$("#showarea");
$.each(data,function(index,item){
OutputData(contentbox,item);//请注意这里,用它处理html
})
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status);
//alert(textStatus);
}
})
})

function OutputData(contentbox,item){//这里用加字符串的方法得到一个图片地址,一个id及一个title
contentbox.append(
"<div class=\"coachphoto\">"+
"<a href=\"picview.aspx?id="+item.id+"\">"+
"<img src=\""+item.smallsize+"\" class=\"coachphotoimg\" width=\"154\" height=\"114\" />"+
"<br />"+
"<span>"+item.title+"</span>"+
"</a>"+
"</div>");

}

下面是html:
  <div id="testnavi">
<span id="curlocation"><!--您现在的位置:安全管理--></span>
</div>
<div id="box">
<div id="navi_left">
<div id="newshrefbox">
<!--导航区
<div class="navibut"><a class="newsnavi">安 全 规 章</a></div>
<div class="navibut"><a class="newsnavi">应 急 预 案</a></div>
<div class="navibut"><a class="newsnavi">健 康 卫 生</a></div>
<div class="navibut"><a class="newsnavi">日 常 工 作</a></div>
-->
</div>
</div>
<div id="backframe">
<!--内容区:-->
<div id="contentbox">
<div id="yemei" style="height:20px; width:100%"></div>
<div id="showarea" style="height:400px;width:100%; clear:left"></div><!--想加到这里-->
</div>
</div>
</div>
<%@ Register TagPrefix="tjhdtx" TagName="footer" Src="footer.ascx"%>
<tjhdtx:footer ID="ctlFooter" Runat="Server" />
</div>

证明我已经得到json格式数据,用图片如下:(用firefox工具箱得到)

但我无法得对象显示到网页上,请高手帮助。
...全文
584 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
凹加凸等于啥 2016-03-21
  • 打赏
  • 举报
回复
实在不会调试,你在success 中alert一下data 就知道问题在哪了
  • 打赏
  • 举报
回复
$.each(data,function(index,item)) item是jquery对象,不是dom对象,试试 OutputData(contentbox,item[0])
lihzsonny 2016-03-21
  • 打赏
  • 举报
回复
引用 3 楼 jxh234429300 的回复:
你看是不是append(这个里面item解析出现了js错误),你直接append("固定字符串测试下") 或者把append里面的字符串提出来看是否拼写正确
试了,也是看不到。
  • 打赏
  • 举报
回复
或者统一用jquery语法,item.id 改成item.attr("id")这种
  • 打赏
  • 举报
回复
看你用的FireFox,那你可以装个FireBug,默认的调试起来怪怪的,而且还不容易理解,FireBug就好理解多了 或者你装个谷歌,它的调试器跟FireFox默认的类似,但个人感觉好理解多了,你可以发请求,然后再network那里看显示什么颜色,如果不是红色,就表示数据正常返回,这时候看有没有进success方法,或者干脆直接就在source栏里在你的success方法里面加断点,看是否可以进去
lihzsonny 2016-03-21
  • 打赏
  • 举报
回复
我哪里会用工具箱呀,倒里试了一个调试器,但发现调试器总往jquery.js里跑,看不懂啊。但如果连success都到不了,为什么能得到返回对象呢?(我最后上传的图片 )
雨网科技 2016-03-21
  • 打赏
  • 举报
回复
你看是不是append(这个里面item解析出现了js错误),你直接append("固定字符串测试下") 或者把append里面的字符串提出来看是否拼写正确
insus 2016-03-21
  • 打赏
  • 举报
回复
Poopaye 2016-03-21
  • 打赏
  • 举报
回复
你都会用工具箱了,翻到调试器那页,看看这个OutputData调用到了没

62,270

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧