返回信息流☆─────────────────────────────────────☆
Vampire (黑暗祭礼) 于 (Tue May 13 18:41:53 2008) 提到:
近期看JS的书讲到了关于JS对DOM的控制
在浏览器地址栏输入如下JS代码
javascript:
var ps=document.getElementsByTagName("p"); //抓出所有p元素
var newp=document.createElement("span"); //创建span元素结点
var newtext=document.createTextNode("YOU AND ME"); //创建文本结点
newp.appendChild(newtext); //讲文本结点作为新建span结点的子节点
for (var i=0;i<ps.length;i++)
ps[i].appendChild(newp); //在页面所有p结点的子节点末尾添加newp结点
回车之后页面只显示[object],请问为什么?谢谢~!!
☆─────────────────────────────────────☆
diysimon (I'm Forain) 于 (Tue May 13 19:49:45 2008) 提到:
因为newp就是一个object啊
如果你要显示它的内容的话可以
alert(newp.innerHTML)
☆─────────────────────────────────────☆
Vampire (黑暗祭礼) 于 (Tue May 13 19:52:25 2008) 提到:
我是想让 那个已经打开了的页面 显示添加元素之后的样子
【 在 diysimon 的大作中提到: 】
: 因为newp就是一个object啊
: 如果你要显示它的内容的话可以
: alert(newp.innerHTML)
☆─────────────────────────────────────☆
diysimon (I'm Forain) 于 (Tue May 13 22:37:13 2008) 提到:
你这样做是不对的,按照你的代码,只有最后一个p最后能append到newp
因为append操作的对象元素如果原来已经在文档中存在,则append是一个移动的操作
节点会被从原来的位置移动开
<html>
<head>
</head>
<body>
<p>1</p>
<p>2</p>
<p>3</p>
<script>
var ps=document.getElementsByTagName("p"); //抓出所有p元素
var newp=document.createElement("span"); //创建span元素结点
var newtext=document.createTextNode("YOU AND ME"); //创建文本结点
newp.appendChild(newtext); //讲文本结点作为新建span结点的子节点
for (var i=0;i<ps.length;i++) {
ps[i].appendChild(newp); //在页面所有p结点的子节点末尾添加newp结点
alert(i);
}
</script>
</body>
</html>
直接修改innerHTML吧,performance更优秀一些
☆─────────────────────────────────────☆
Vampire (黑暗祭礼) 于 (Tue May 13 22:51:06 2008) 提到:
呃……刚才看书的时候看到这一点说明了……DOM结点只能属于一个父节点……
谢谢啦~!
【 在 diysimon 的大作中提到: 】
: 你这样做是不对的,按照你的代码,只有最后一个p最后能append到newp
: 因为append操作的对象元素如果原来已经在文档中存在,则append是一个移动的操作
: 节点会被从原来的位置移动开
: ...................
☆─────────────────────────────────────☆
jiayi (游哉优哉) 于 (Wed May 14 23:32:06 2008) 提到:
一个子节点移来移去的......
DOM要用活,不能用死。。
这是一条镜像帖。来源:北邮人论坛 / www-technology / #8685同步于 2009/8/30
WWWTechnology机器人发帖
[合集] [求助]地址栏的javascript
dickfu
2009/8/30镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。