ie6如何用js获取动态创建的元素

to_be_a_coder 2010-09-05 05:46:27
我做得页面用到了document.createElement("div");来创建按钮之类的

在火狐中运行正常,在ie6中找不到创建的这些对象??

该用什么方法得到它们????
...全文
477 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxuewei91 2013-02-27
  • 打赏
  • 举报
回复
还是不太明白最后怎么解决的这个submitName ,现在用 document.getElementsByName() 获取不到
root_lee 2010-09-06
  • 打赏
  • 举报
回复
name被ie改了?
只要id不被改,getElementsByName就可以取到。
getElementsByName(sName)中的sName可为name 属性值或 id 属性,但name属性不能为自定义的,name属性必须是元素自身有的
root_lee 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 webadvocate 的回复:]

引用 10 楼 root_lee 的回复:

在ie和firefox下均可用的方法方法:
HTML code
<html>
<head>
<title>test</title>
<script language="javaScript">
function test()
{
//document.getElementB……
butt.setAttribute("name"……
[/Quote]
加多了这句:butt.setAttribute("id","tt");
在ie6,firefox3.6.8下均可
WebAdvocate 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 root_lee 的回复:]

在ie和firefox下均可用的方法方法:
HTML code
<html>
<head>
<title>test</title>
<script language="javaScript">
function test()
{
//document.getElementB……
[/Quote] butt.setAttribute("name","tt");也不行,还是会被IE改成 submitName
root_lee 2010-09-06
  • 打赏
  • 举报
回复
在ie和firefox下均可用的方法方法:
<html>
<head>
<title>test</title>
<script language="javaScript">
function test()
{
//document.getElementById("dis").disabled = true;
var butt = document.createElement("<input>");
butt.setAttribute("type","button");
butt.setAttribute("value","test");
butt.setAttribute("name","tt");
butt.setAttribute("id","tt");
document.body.appendChild(butt);
}

function getButtonName()
{
var ttt = document.getElementsByName("tt");
alert("ttt = " + ttt.length);

}
</script>
</head>
<body>
<input type="button" id="dis" value="dis" onclick="getButtonName();"/>
<input type="button" value="test" onclick="test();"/>
</body>
</html>
WebAdvocate 2010-09-06
  • 打赏
  • 举报
回复
lz你在设置name的时候,被IE改成了 submitName。所以,你取不到。
你可以用IE8 的开发工具看看
修改方案按ls 的就可以了
lz还可以看看这篇文章:http://www.w3help.org/zh-cn/causes/SD9006
root_lee 2010-09-06
  • 打赏
  • 举报
回复
butt.value = "test";
butt.name = "tt";
这样写,在ie下被当作了自定义的属性,所以用document.getElementsByName获取不到。像下面这样可以:
<html>
<head>
<title>test</title>
<script language="javaScript">
function test()
{
//document.getElementById("dis").disabled = true;
var butt = parent.document.createElement("<input type='button' name='tt' value='test'/>");
// butt.value = "test";
// butt.name = "tt";
document.body.appendChild(butt);
}

function getButtonName()
{
var ttt = document.getElementsByName("tt");
alert("ttt = " + ttt.length);

}
</script>
</head>
<body>
<input type="button" id="dis" value="dis" onclick="getButtonName();"/>
<input type="button" value="test" onclick="test();"/>
</body>
</html>
root_lee 2010-09-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 root_lee 的回复:]

ie下document.getElementsByName("tt");中的tt是元素的id,firefox下是元素的name
[/Quote]
当我没说
root_lee 2010-09-06
  • 打赏
  • 举报
回复
ie下document.getElementsByName("tt");中的tt是元素的id,firefox下是元素的name
liaoyukun111 2010-09-06
  • 打赏
  • 举报
回复
var butt = document.createElement('<input type="button" name="tt" value="test">');


document.body.appendChild(butt);
学习 了
ajccom 2010-09-05
  • 打赏
  • 举报
回复
0 0.原来这样!!! IE君!!!
s_liangchao1s 2010-09-05
  • 打赏
  • 举报
回复

var butt = document.createElement('<input type="button" name="tt" value="test">'); // IE下name属性需要直接指定
to_be_a_coder 2010-09-05
  • 打赏
  • 举报
回复
我知道IE6有问题,但是有解决的方法没有啊??
像下面这个例子,当我创建几个按钮之后,点击dis得到的长度居然撒零,莫名其妙。




<html>
<head>
<title>test</title>
<script language="javaScript">
function test()
{
//document.getElementById("dis").disabled = true;
var butt = parent.document.createElement("button");
butt.value = "test";
butt.name = "tt";
document.body.appendChild(butt);
}

function getButtonName()
{
var ttt = document.getElementsByName("tt");
alert("ttt = " + ttt.length);

}
</script>
</head>
<body>
<input type="button" id="dis" value="dis" onclick="getButtonName();"/>
<input type="button" value="test" onclick="test();"/>
</body>
</html>
zoujp_xyz 2010-09-05
  • 打赏
  • 举报
回复
w3c规范 ie下不行,看看你的代码

87,910

社区成员

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

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