我有这个真正令人讨厌的问题.
总之,如果我使用,我会得到一个未找到的元素 (document.getElementsByTagName("p"))[0]
如果p标签在div这里面
<div id="main">
<p>see</p>
</div>
Run Code Online (Sandbox Code Playgroud)
但是一旦我删除了div包装器,所有的东西都能正常工作.
30分钟后,我把问题简化为这个简单的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ttttttttttttttttttttt</title>
</head>
<body>
<div id="main">
<p>see</p>
</div>
<script type="text/javascript">
var myobj = document.createElement("div");
myobj.innerHTML='yesyes';
document.body.insertBefore(myobj, (document.getElementsByTagName("p"))[0] );
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
把上面放在一个文件中.在Firefox或Chrome或IE8中打开.如果成功,你应该看到"是的".如果你删除<div id="main">包装,那么它的工作原理.
似乎有些东西我不理解getElementsByTagName?
与此无关getElementsByTagName,与此无关insertBefore.试试这个:
document.getElementById('main').insertBefore(myobj, (document.getElementsByTagName("p"))[0] );??
Run Code Online (Sandbox Code Playgroud)
insertBefore需要父元素.它不会像你调用它那样起作用(on body),所以我只是查找了"main"div.
| 归档时间: |
|
| 查看次数: |
2035 次 |
| 最近记录: |