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];缺少对象,请教下是不是我代码哪里出问题了??
展开
 我来答
旺知未d
2011-04-18
知道答主
回答量:8
采纳率:0%
帮助的人:3.8万
展开全部
添加下面代码,用这样的方式
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取的是什么值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tuzi___520
2011-04-18 · TA获得超过241个赞
知道答主
回答量:73
采纳率:0%
帮助的人:34.4万
展开全部
正确的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);
追问
嗯,不好意思,我贴出的代码不是完整的,只是把重要的贴出来了
追答
有两个问题需要检查一下:
1. 获取的返回值returnValue 的问题,是不是数据类型不对。
2. var bodylen = newbody.rows.length;这个bodylen 减1才对,因为上面的代码加了一行,行数加了1。比第一次加一行之前的值多了1。

问题2特别检查一下,希望能对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式