javascript

GiveAHand0 2010-12-24 05:09:01
在javascript里动态添加一行后(行里有个html控件)
因为在动态添加后,页面不会刷新(目的就是实现无刷新)
所以源代码里是没有添加上去的行(包括里的控件)的代码
因此无法用document.getElementById("新添加的行中的控件ID")获取新添加的行里的控件

在网上找的方法:
table.rows[新行索引].cells[0].childNode[0]
依然无效

请问各位有什么好的解决方法没?
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangshuainihao 2011-04-27
  • 打赏
  • 举报
回复
有时候id和name会重复
GiveAHand0 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cj205 的回复:]
你不觉得id这个东西不能搞太多吗?
table.rows[新行索引].cells[0].getElementsByTagName("input")[0].checked试试?
[/Quote]
好了3Q
hch126163 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cj205 的回复:]

你不觉得id这个东西不能搞太多吗?
table.rows[新行索引].cells[0].getElementsByTagName("input")[0].checked试试?
[/Quote]

正解

用 getElementsByTagName
flyxiao1987 2010-12-24
  • 打赏
  • 举报
回复
var newTr = table.insertRow();
var newTd = newTr.insertCell();
var rad = document.createElement("input");
rad.type = "radio";
rad.id = "r1";
newTd.appendChild(rad);

alert(document.getElementById("r1").checked);
Mr-Jee 2010-12-24
  • 打赏
  • 举报
回复
你不觉得id这个东西不能搞太多吗?
table.rows[新行索引].cells[0].getElementsByTagName("input")[0].checked试试?
GiveAHand0 2010-12-24
  • 打赏
  • 举报
回复
执行新添加控件

var newTr = table.insertRow();
var newTd = newTr.insertCell();
newTd.innerHTML="<input type="radio" id="r1"/>";

在不刷新情况下,再用document.getElementById("r1").checked取不到
Mr-Jee 2010-12-24
  • 打赏
  • 举报
回复
代码发来看看

87,992

社区成员

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

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