新人请教有关document.getElementById问题

xinxin1982 2019-05-30 11:53:11
aspx页面里我写的
function jsDYchaxun() {
//myalldata = "";
while (myalldata != null) {
setTimeout(function () { myalldata = document.getElementById("<%=chaxun()%>").value }, 1000);
}
alert(document.getElementById("<%=chaxun()%>").value);
alert(document.getElementById("<%=chaxun()%>").innerHTML);
alert(document.getElementById("<%=chaxun()%>").innerText);
}

调用的aspx的方法,
myalldata = document.getElementById("<%=chaxun()%>")
或者
myalldata = document.getElementById("<%=chaxun()%>").value
或者innerHTML或者innerText,在浏览器里按F12都能看到有值,但是alert出来确是
Uncaught TypeError: Cannot read property 'value' of null
at jsDYchaxun ((index):38)
at HTMLButtonElement.onclick ((index):15)
请问这个怎么弄呀。。。

aspx里这个chaxun方法是public的,返回string,

...全文
192 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinxin1982 2019-07-31
  • 打赏
  • 举报
回复
自己解决了。。。。唉。。。。
潇湘忆梦 2019-07-31
  • 打赏
  • 举报
回复
.aspx页面被客户端请求时,服务器端依次执行.cs里的Page_Load、Page_Init, Page_PreLoad等方法。执行完成后,会生成html页面传回到客户端浏览器,执行onload()的客户端方法,从你描述中,数据已经加载完成了,前端js应该是不会报错的,你把代码贴出来看下
xinxin1982 2019-07-31
  • 打赏
  • 举报
回复
背后的aspx.cs文件里protected void Page_Load(object sender, EventArgs e)就执行了数据库查询,大概要4秒 前台.aspx里在head前就开始读取数据,浏览器按F12能看到变量值,但是alert或者docoument.write都显示null。。。 求赐教这是为啥。。
xinxin1982 2019-05-30
  • 打赏
  • 举报
回复
<body topmargin="0" leftmargin="0" bgcolor="#FFFFFF">
<button style="width: 120px; height: 40px;" onClick="document.location.reload()">重启EVA-01</button>   
<button style="width: 120px; height: 40px;" runat="server" onClick="jsDYchaxun()">插入精神控制器</button>   
<button style="width: 120px; height: 40px;" runat="server" onClick="fenJieData()">开始进入同步</button>   
<button style="width: 120px; height: 40px;" onClick="draw()">同步率20%</button>   
<button style="width: 120px; height: 40px;" onClick="draw2()">同步率40%</button>   
<canvas id="xinxinwa" width="1600" height="1000"></canvas>
<script type="text/javascript" defer=true>
//获取单行总数据
function jsDYchaxun() {
while (myalldata != null) {
setTimeout(function () { myalldata = document.getElementById("<%=chaxun()%>").value }, 1000);
}
alert(document.getElementById("<%=chaxun()%>").value);
alert(document.getElementById("<%=chaxun()%>").innerHTML);
alert(document.getElementById("<%=chaxun()%>").innerText);
stherix 2019-05-30
  • 打赏
  • 举报
回复
jsDYchaxun() 是在什么时候调用的 如果文档还没加载完成,是获取不到页面元素的
天际的海浪 2019-05-30
  • 打赏
  • 举报
回复
document.getElementById()是获取前面页面上html元素的。 你要获取后台变量的值应该是 alert("<%=chaxun()%>");
xinxin1982 2019-05-30
  • 打赏
  • 举报
回复
window.onload = function () { myalldata = document.getElementById("<%=mydata%>").value }
现在这么写,alert出来的显示undefind。。。咋整啊。。就是想获取到aspx里的字符串变量值啊。。。
stherix 2019-05-30
  • 打赏
  • 举报
回复
不知道为什么要在while循环里用setTimeout 意义是什么啊 这样会疯狂循环,建立大量的定时器 直到myalldata为空才会结束 这时候alert肯定是没有数据的了

87,904

社区成员

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

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