var address=new Array(new Array());
for(var i=0;i<data.length;i++)
{
var id=data[i].ID;
var id1="a["+data[i].ID+"][0]";
var id2="a["+data[i].ID+"][1]";
var id3="a["+data[i].ID+"][2]";
var id4="a["+data[i].ID+"][3]";
var id5="a["+data[i].ID+"][4]";
var name1=document.getElementsByName(id1);
var name2=document.getElementsByName(id2);
var name3=document.getElementsByName(id3);
var name4=document.getElementsByName(id4);
var name5=document.getElementsByName(id5);
for(var j=0;j<name1.length;j++){
address[id][j]=name1[j].innerText;
}
}
var address=new Array();
var receiver=new Array();
var mobile=new Array();
var tel=new Array();
var remark=new Array();
for(var i=0;i<data.length;i++)
{
var id=data[i].ID;
var id1="a["+data[i].ID+"][0]";
var id2="a["+data[i].ID+"][1]";
var id3="a["+data[i].ID+"][2]";
var id4="a["+data[i].ID+"][3]";
var id5="a["+data[i].ID+"][4]";
var name1=document.getElementsByName(id1);
var name2=document.getElementsByName(id2);
var name3=document.getElementsByName(id3);
var name4=document.getElementsByName(id4);
var name5=document.getElementsByName(id5);
address[id]=new Array();
receiver[id]=new Array();
mobile[id]=new Array();
tel[id]=new Array();
remark[id]=new Array();
for(var j=0;j<name1.length;j++){
address[id][j]=name1[j].innerText;
}
for(var j=0;j<name2.length;j++){
receiver[id][j]=name2[j].innerText;
}
for(var j=0;j<name3.length;j++){
mobile[id][j]=name3[j].innerText;
}
for(var j=0;j<name4.length;j++){
tel[id][j]=name4[j].innerText;
}
for(var j=0;j<name5.length;j++){
remark[id][j]=name5[j].innerText;
}
}
原因有三:
传值有误,请检查传值是否正确
页面没有对应id的元素
调用函数时,页面中指定id的元素还未渲染,请将此函数放到指定id元素的后面(最好是页面最底下)或将函数放在onload事件内
1,你打印一下你的name1看看,是不是元素节点,如果不是,innerText肯定就取不到值,我怀疑是这个地方的问题,因为你id1的值是a[xxx][0]的一个字符串,而不是从a这个对象中取对应的data[i].ID下的[0],可以测试一下
2,你可以直接address = [];然后在循环中push,这样清楚一点,不容易出错
当 j=0 时,name1[j] 表示访问 name1 对象的 0 属性,如果 name1 为null 或者未定义,就报你遇到的那个错误,
说明 var name1=document.getElementsByName(id1); 获取的结果为 null,你看看有没有 name=id1变量对应的标签
debug 调试 把传值的地方 标记 然后一步一步调试 看看 值在哪点丢了
看不完整,但你是getElementsByName(id1);,看参数你传入的是id。你html那边属性上面写的是id=“”,还是name等于。
会不会是getElementsById(id1)
以divName这个变量为id的元素在页面中不存在,可能的原因有3:
divName传值有误,请检查传值是否正确
页面没有对应id的元素
调用ShowTags时,页面中指定id的元素还未渲染,请将此函数放到指定id元素的后面(最好是页面最底下)或将函数放在onload事件内
1.别问为什么?首先你要确定你的语法是否是对的。按照标准来。
document.getElementsByName("myInput");
2.该定义是不是都定义了;
3.javascript 解析 从上到下
data未定义,应该是name[0],而不是id1="a[" + data[i].ID + "][0]"。。
你到底打算写什么做什么? 完全看不懂啊?