ajax成功函数中getelementbyid为null

fanjiangyu9401 2018-04-24 05:52:58
另一个ajax函数返回使用getElementById是没有问题的,这个函数会报错TypeError: document.getElementById(...) is null
查询了网上的方法把js代码放到body模块之后还是不可以,想请问这是怎么一回事呢?
div代码只放了一部份,jquery代码放完了,查看控制台-网络是可以看到index.php返回的数据的但是无法赋值。
<div class = "container">
<div class="news" id="news1" style = 'margin-left:25px'>
<div class="content" id="content01" > </div>
<div class="more" id="more1" > </div>

$(function(){
$.ajax({
type: "get", //传递方法
url: "index.php",//数据接口
async: false,
datatype: "json",
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success: function(msg)//如果接收成功执行以下
{
result=eval("("+msg+")");
console.log(result[0]);
document.getElementById("content01").innerHTML = result[0]+"<br/>";
document.getElementById("content02").innerHTML = result[1]+"<br/>";
document.getElementById("content03").innerHTML = result[2]+"<br/>";
document.getElementById("content04").innerHTML = result[3]+"<br/>";
document.getElementById("content05").innerHTML = result[4]+"<br/>";
},
error:function(XMLHttpRequest, textStatus, errorThrown)//如果接收不成功执行以下
{
alert(textStatus);
}
});
});
...全文
765 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanjiangyu9401 2018-04-25
  • 打赏
  • 举报
回复
引用 7 楼 yaotomo 的回复:
你的html里只有<div class="content" id="content01" > </div> 没有content02,content03和content4,content4这4个div呀
因为div太多,我只放了一部分,是有的,而且是从content01就开始显示为null
yaotomo 2018-04-25
  • 打赏
  • 举报
回复
你的html里只有<div class="content" id="content01" > </div> 没有content02,content03和content4,content4这4个div呀
fanjiangyu9401 2018-04-24
  • 打赏
  • 举报
回复
顶顶楼 up up↑ 求解答呀!
fanjiangyu9401 2018-04-24
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
你确定页面中有id为content01到content05的元素 <div class="content" id="content01" > </div> <div class="content" id="content02" > </div> <div class="content" id="content03" > </div> <div class="content" id="content04" > </div> <div class="content" id="content05" > </div> 另外,dataType中第二个T是大写。 同时设置dataType: "json"了,就不需要用result=eval("("+msg+")");
如果在ajax函数外赋值是可以成功的,我也贴了id为content01-05那段的div dataType那个好像之前改差了,不过我另一个jQuery也是这样的,能够成功赋值 我之前传回来的数据不用eval好像格式不对,这个会影响到赋值吗?
天际的海浪 2018-04-24
  • 打赏
  • 举报
回复
你确定页面中有id为content01到content05的元素 <div class="content" id="content01" > </div> <div class="content" id="content02" > </div> <div class="content" id="content03" > </div> <div class="content" id="content04" > </div> <div class="content" id="content05" > </div> 另外,dataType中第二个T是大写。 同时设置dataType: "json"了,就不需要用result=eval("("+msg+")");
fanjiangyu9401 2018-04-24
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
你确定页面中有id为content01到content05的元素 <div class="content" id="content01" > </div> <div class="content" id="content02" > </div> <div class="content" id="content03" > </div> <div class="content" id="content04" > </div> <div class="content" id="content05" > </div> 另外,dataType中第二个T是大写。 同时设置dataType: "json"了,就不需要用result=eval("("+msg+")");
刚试了一下,如果是dataType我会报illegal character,确定没有改动其他的就一个T
fanjiangyu9401 2018-04-24
  • 打赏
  • 举报
回复
引用 1 楼 yaotomo 的回复:
DOM元素还没有加载,无法通过getElementById获取 把方法写到 window.onload里 或者jquery的$(function(){})里,就能在页面加载完成后执行
我把jquery的$function加进window.onload=function(){}中还是不可以,报一样的错误 还是我理解错了您的意思呢?
yaotomo 2018-04-24
  • 打赏
  • 举报
回复
DOM元素还没有加载,无法通过getElementById获取 把方法写到 window.onload里 或者jquery的$(function(){})里,就能在页面加载完成后执行

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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