innerHTML动态添加input框,请问下如何赋动态ID属性,行数可以获取到。。 5
获取行数varnewbody=document.getElementById("newbody");varbodylen=newbody.rows.length;js代码...
获取行数
var newbody = document.getElementById("newbody");
var bodylen = newbody.rows.length;
js代码:
var td0=document.createElement("td");
td0.innerHTML="<input type=\"hidden\" id=\"goodid"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodid\"/>"+
"<input type=\"text\" id=\"goodname"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodname\" />"+
"<img src=\'${ctx}/styles/images_default/serc.gif\' title=\"查询物品控件\" onclick=\'view()\' />";
tr.appendChild(td0);
是不是我写错代码了???一直无法获取id
因为我需要在另一个页面选择的时候返回值,但返回的值必须对应id来赋值。。。
function view() {
var returnValue = dialog("${ctx}/iomp/goods/goodsChose.action","选择货物",600,560);
if(returnValue != null && returnValue != ''){
var arrayValue = new Array();
arrayValue = returnValue.split(",");
var newbody = document.getElementById("newbody");
var bodylen = newbody.rows.length;
var gid = "goodid"+bodylen;
var nid = "goodname"+bodylen;
document.getElementById(gid).value = arrayValue[0];
document.getElementById(nid).value = arrayValue[1];
}
}
一直出现js错误,说我document.getElementById(gid).value = arrayValue[0];缺少对象,请教下是不是我代码哪里出问题了?? 展开
var newbody = document.getElementById("newbody");
var bodylen = newbody.rows.length;
js代码:
var td0=document.createElement("td");
td0.innerHTML="<input type=\"hidden\" id=\"goodid"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodid\"/>"+
"<input type=\"text\" id=\"goodname"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodname\" />"+
"<img src=\'${ctx}/styles/images_default/serc.gif\' title=\"查询物品控件\" onclick=\'view()\' />";
tr.appendChild(td0);
是不是我写错代码了???一直无法获取id
因为我需要在另一个页面选择的时候返回值,但返回的值必须对应id来赋值。。。
function view() {
var returnValue = dialog("${ctx}/iomp/goods/goodsChose.action","选择货物",600,560);
if(returnValue != null && returnValue != ''){
var arrayValue = new Array();
arrayValue = returnValue.split(",");
var newbody = document.getElementById("newbody");
var bodylen = newbody.rows.length;
var gid = "goodid"+bodylen;
var nid = "goodname"+bodylen;
document.getElementById(gid).value = arrayValue[0];
document.getElementById(nid).value = arrayValue[1];
}
}
一直出现js错误,说我document.getElementById(gid).value = arrayValue[0];缺少对象,请教下是不是我代码哪里出问题了?? 展开
2个回答
展开全部
添加下面代码,用这样的方式
td0.setAttribute("id","aaa");
alert(document.getElementById("aaa").children[0].id);
不知道lz是不是这个意思
td0.setAttribute("id","aaa");
alert(document.getElementById("aaa").children[0].id);
不知道lz是不是这个意思
追问
我知道你的意思,你意思是添加td0的时候给于id赋值为aaa,但是有个问题,我td0里面有两个text框需要赋id的,这样的话我怎么区分呢??
追答
你写的代码可以生成id=\"goodid"+bodylen+"\" 和id=\"goodname"+bodylen+"\" 的text框。
你是问怎么获取id? 在获取id的时候通过td0的id先获得元素(document.getElementById("aaa")),然后通过.children[0].id获取下子元素的id。如果要取第二个text框的id,使用document.getElementById("aaa").children[1].id。
如果确定arrayValue = returnValue.split(",");获得的数组是对的,那么应该是你的bodylen的值有问题。不知道你的bodylen取的是什么值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正确的js代码为:
var tbody = document.createElement("tbody");
var tr = document.createElement("tr");
var td0 = document.createElement("td");
td0.innerHTML ="<input type=\"hidden\" id=\"goodid"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodid\"/>"+
"<input type=\"text\" id=\"goodname"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodname\" />"+
"<img src=\'${ctx}/styles/images_default/serc.gif\' title=\"查询物品控件\" onclick=\'view()\' />";
tr.appendChild(td0);
tbody.appendChild(tr);
newbody.appendChild(tbody);
var tbody = document.createElement("tbody");
var tr = document.createElement("tr");
var td0 = document.createElement("td");
td0.innerHTML ="<input type=\"hidden\" id=\"goodid"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodid\"/>"+
"<input type=\"text\" id=\"goodname"+bodylen+"\" class=\"form_text\" value=\"\" name=\"goodname\" />"+
"<img src=\'${ctx}/styles/images_default/serc.gif\' title=\"查询物品控件\" onclick=\'view()\' />";
tr.appendChild(td0);
tbody.appendChild(tr);
newbody.appendChild(tbody);
追问
嗯,不好意思,我贴出的代码不是完整的,只是把重要的贴出来了
追答
有两个问题需要检查一下:
1. 获取的返回值returnValue 的问题,是不是数据类型不对。
2. var bodylen = newbody.rows.length;这个bodylen 减1才对,因为上面的代码加了一行,行数加了1。比第一次加一行之前的值多了1。
问题2特别检查一下,希望能对你有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询