最近在做一个报表的时候使用了ajax技术,将用户在页面操作之后,异步的结果利用js在特定的位置显示,
比如xmlHttp.responseText返回的结果是 "123456,操作成功", 那么我直接在用户id 123456下方的一个span标签里面显示操作结果 " 操作成功"
那么首先就需要得到标签id,再利用innerText就可以了
<span class="STYLE3" name = "alertuser" id="alert123456" color =red></span>
我的页面更新js函数
function updatePage()
{
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
var response = xmlHttp.responseText;
var uid=response.split(','); //这时候uid[0]就是123456(如果response 为 123456,操作成功 )uid[1]是”操作成功“
var which= 'alert'+uid[0]; //
alert(which);
$(which).innerText = uid[1];
}
}
response 的内容是"123456,操作成功"
按所想which的提示对话框弹出的内容就是alert123456
可是在浏览器里里面就是提示
谷歌:Uncaught TypeError: Cannot set property 'innerText' of null
IE: 对象为NULL
于是google 百度 关键字 “ID存在
getElementById 为空" 还是没有找到我想要的答案
再去尝试 如果修改成下面这种方式 就可以,但是不能再特定用户位置显示。
var which= 'alert123456';
alert(which);
上面的方式能够成功得到对象 并且
innerText 也成功,说明在responseText返回之后解析的用户id的时候uid[0]有问题
那么可以看一下which变量的长度
var uid=response.split(',');
var which= 'alert'+uid[0];
alert(which);
alert(which.length);
虽然弹出的对话框显示的是‘alert123456’,但是弹出的长度却是12,说明变量which里面含有未知字符
通过用正则表达式
which=which.replace(/[^a-z0-9]/gi,'');
去除之后就可以正常在网页特定位置显示内容了。