代码很简单,请看:如果此时直接点击test按钮,IE8报错。Chrome以及Firefox均报错。似乎是代码的问题。
将document.getElementById("test1")修改为document.getElementById("test2")
再点击test按钮,IE8 Chrome Firefox均正确执行。显然问题似乎是dd元素前不允许执行插入dom元素的。请问大家该如何解决该问题?appendChild方法不适合我需要的结构,所以不能使用。谢谢。<head>
<title>Untitled Page</title>
<script type="text/javascript">
function test()
{
var fra=document.createDocumentFragment();
var a=document.createElement("dd");
a.setAttribute("id","http://www.sohu.com");
a.innerHTML="www.sohu.com";
fra.appendChild(a);
document.body.insertBefore(fra,document.getElementById("test1"));
}
</script>
</head>
<body><dl>
<dt>测试</dt>
<dd id="test1">111111111111111</dd>
</dl><div id="test2">test</div><input type="button" value="test" onclick="test()" />
</body>
将document.getElementById("test1")修改为document.getElementById("test2")
再点击test按钮,IE8 Chrome Firefox均正确执行。显然问题似乎是dd元素前不允许执行插入dom元素的。请问大家该如何解决该问题?appendChild方法不适合我需要的结构,所以不能使用。谢谢。<head>
<title>Untitled Page</title>
<script type="text/javascript">
function test()
{
var fra=document.createDocumentFragment();
var a=document.createElement("dd");
a.setAttribute("id","http://www.sohu.com");
a.innerHTML="www.sohu.com";
fra.appendChild(a);
document.body.insertBefore(fra,document.getElementById("test1"));
}
</script>
</head>
<body><dl>
<dt>测试</dt>
<dd id="test1">111111111111111</dd>
</dl><div id="test2">test</div><input type="button" value="test" onclick="test()" />
</body>
解决方案 »
- javascript replace的问题
- 求JS高手帮忙改一下flash啊
- 上传图片功能如何实现?
- 大家好,我现在正在学网页制作,jsp,希望大家给我几点建议,谢谢!
- jQuery是怎么做到在页面加载完再调用getElementById的?
- 老问题,在WEB 如何知道已经安装了某个软件。急!
- 第一次登陆的时候,“不再保存密码”,怎么实现的?
- 一个框架有a,b两个窗口,用js实现窗口a ,提交窗口b的一个表单form1.
- miniui的datagrid如何以get方法的形式填充数据
- Javascript的一段代码,求大神能帮忙解释下这段代码的结构或者解释下全文中不同位置的t,e,n,s的关系
- 类试select级联选择怎么弄?
- 关于用js实现控件联动的问题?
<title>Untitled Page</title>
<script type="text/javascript">
function test() {
var fra=document.createDocumentFragment();
var a=document.createElement("dd");
a.setAttribute("id","http://www.sohu.com");
a.innerHTML="www.sohu.com";
fra.appendChild(a);
var test1 = document.getElementById("test1");
test1.parentNode.insertBefore(fra, test1);
}
</script>
</head>
<body>
<dl>
<dt>测试</dt>
<dd id="test1">111111111111111</dd>
</dl>
<div id="test2">test</div>
<input type="button" value="test" onclick="test()" />
</body>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<script type="text/javascript">
function CreateElement()
{
var fra=document.createDocumentFragment();
var hh=document.createElement("dd");
hh.setAttribute("id","d1");
hh.innerHTML="http://blog.csdn.net/ws_hgo";
fra.appendChild(hh);
var ce=document.getElementById("ce");
ce.parentNode.insertBefore(fra,ce);
}
</script>
</head>
<body>
<dl>
<dd id="ce">测试</dd>
</dl>
<div>
<input id="Button1" type="button" value="ClickMe" onclick="CreateElement();" />
</div>
</body>
</html>
要是这个问题的话 用 document.all.test1怎么也不可以啊
还有 去掉<dl> 和 </dl> 这两个标签之后, 为什么 document.body.insertBefore(fra,document.getElementById("test2"));有不可以用了?显然问题不是出在 多了一个标签嵌套上。