源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 595|回复: 18

[CSS/HTML] 动态更改网页HTML元素(对象)内容

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2006-11-8 00:00:00 | 显示全部楼层 |阅读模式
动态HTML的出现为用户提供了一种基于传统标准HTML来创建交互式页面的机制。本文主要针对IE 5.0谈谈如何通过其提供的HTML文档对象(DOM)模型使用脚本添加、删除、修改页面中的HTML元素(对象)及元素(对象)内容。

  动态更改网页HTML元素(对象)内容

  HTML块级元素(对象)提供的4个可读写属性innerHTML、innerText、 outerHTML、outerText来更改元素(对象)内容(如表1所示)。

  当设置innerHTML属性时,给定字符串完全替换现有的元素(对象)内容,如果给定字符串中含有HTML格式标签,那么该字符串就会进行解析并格式化。当用innerText属性设置时,给定字符串也完全替换现有元素(对象)文本内容,但与innerHTML不同的是HTML格式标签是当做文本直接显示在页面中。若用outerHTML和outerTexe属性设置时,则完全替换元素(对象)。具体操作示例请参见PC World China网站的相关内容。

  修改网页HTML元素

  IE 5.0中文档对象模型(DOM)提供的修改元素(节点)的方法如表2所示。

  在网页中添加新元素分为2个步骤,先创建新元素(对象),然后再将新创建的元素(对象)插入到网页中。在插入到网页之前,允许对该元素(对象)有关属性进行设置,但不能通过元素(对象)ID来引用。也可以使用document.createElement创建新元素,该方法所带参数为用于元素的合法HTML格式标签字符串(包含元素属性)。此外还可以通过元素(对象)cloneNode方法复制该元素(对象)的途径来创建新元素。将新元素插入文档可以通过使用元素(对象)appendChild或insertBefore方法来实现,前者是在元素(对象)子元素集合末尾插入新元素,后者是在元素(对象)子元素集合中某个子元素前插入新元素。

  替换、删除元素(对象)需要注意: ①在replaceChild、removeChild中指定的参数必须为该元素(对象)的直接子元素(对象); ②在使用replaceNode替换元素(对象)时,所有与该元素(对象)相关的属性和内容也将被替换;③如果removeNode中指定参数为true,则该元素包含的所有子元素(节点)也将被删除,默认false,即不删除子元素(节点)。具体操作示例请参见PC World China网站的相关内容。

  插入网页新元素(对象)、HTML或文本内容 此外,也可用insertAdjacenElement、insertAdjacentHTML和insertAdjacentText等方法分别在元素(对象)的指定位置插入新元素(对象)、Html或文本内容(如表3所示)。

  元素(对象)、HTML或文本内容插入的位置由参数指定。BeforeBegin指定插入在元素(对象)之前; afterBegin指定插入在元素(对象)的所有内容之前; beforeEnd指定插入在元素(对象)的所有内容之后; afterEnd指定插入在元素(对象)之后。具体操作示例请参见PC World China网站的相关内容。

  网页动态更改综合运用 我们以菜单程序为例演示网页元素及元素内容修改的应用。该程序灵活运用了元素创建、追加、删除等方法及innerHTML属性建立菜单及子菜单(该程序利用了XML技术读取菜单数据,有关XML技术请参考相关手册),该程序略加修改即可成为一个功能非常强大的实用菜单程序。综合运用示例源代码如下。

---- < html >< head >
---- < title >综合运用示例< /title >
---- < script > var activeMenu,menuContainer=null;
---- function menusetup(){
---- var parentMenuItems=MENUXML.selectNodes("//Menulist/menu");
---- var xmlElement=parentMenuItems.nextNode();
---- while (xmlElement!=null){
---- var newElement=document.createElement("span");
---- newElement.innerText =xmlElement.getAttribute("display");
---- newElement.id=xmlElement.getAttribute("value")
---- newElement.type="parentMenu"
---- newElement.style.width=100;
---- newElement.style.backgroundColor="#CCCCCC";
---- menubar.appendChild(newElement);
---- xmlElement = parentMenuItems.nextNode(); }}
---- function menuClick(){
---- EventSource=event.srcElement
---- switch(EventSource.type){
---- case "parentMenu":
---- removeSubMenu();
---- buildSubMenu(EventSource.id);
---- EventSource.setCapture();
---- activeMenu=EventSource;
---- break;
---- default:
---- activeMenu.releaseCapture();
---- removeSubMenu();
---- activeMenu=null;
---- break;} }
---- function buildSubMenu(EventSourceid){
---- menuContainer=document.createElement("div");
---- menuContainer.style.backgroundColor="#DD00DD";
---- menuContainer.style.width=100;
---- eval(EventSourceid).appendChild(menuContainer);
---- var subMenuItems=MENUXML.selectNodes("//menu[@value='"+EventSourceid+"']/Item");
---- var xmlElement=subMenuItems.nextNode();
---- while (xmlElement!=null){
---- var newElement=document.createElement("div");
---- newElement.innerHTML=xmlElement.getAttribute("display");
---- menuContainer.appendChild(newElement);
---- xmlElement=subMenuItems.nextNode(); }}
---- function removeSubMenu(){
---- if(menuContainer!=null)menuContainer.removeNode(true);}
---- < /script >
---- < /head >< body onload=menusetup() >
---- < xml id=MENUXML >< Menulist >
---- < menu display="File" value="File" >
---- < Item display="New" value="New"/ >
---- < Item display="Open" value="Open" / >
---- < Item display="Save" value="Save" / >
---- < /menu >
---- < /Menulist >< /xml >
---- < div id=menubar onclick=menuClick() >< /div >
---- < /body >< /html >
站长用javascript直接生成元素的代码

-----------start----------------------------

<input type="button" name="aa" value="aa" onclick="showDiv();"/>
ABCDE
<script>
function showDiv(){
var div = document.createElement("div");
div.style.top = 300;
div.style.left = 300;
div.style.backgroundColor = "red";
div.style.display = "inline";
div.innerHTML = "hello, world.";
document.body.appendChild(div);
}
</script>
-----------------end------------------

  关于动态HTML

  又称DHTML,是近年来网络发展进程中最令人激动的创新之一,它提供了一种在网页下载后仍可以通过客户端浏览器来随时更换内容或外观的能力。它不是一项专门技术,而是通过各种技术的综合发展得以实现的概念,这些技术包括DOM(文档对象模型)、Jscript、CSS等。DHTML的核心是DOM模型,正是它使得传统HTML语言所编写的网页具备了动态特性。注意: 不同浏览器所支持的DOM模型是不完全相同的。

回复

使用道具 举报

11

主题

2万

回帖

300

积分

中级会员

Rank: 3Rank: 3

积分
300
发表于 2022-10-14 04:06:08 | 显示全部楼层
搞个免费的用用
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

207

积分

中级会员

Rank: 3Rank: 3

积分
207
发表于 2022-12-12 03:36:53 | 显示全部楼层
收下来看看怎么样
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-10-27 00:53:36 | 显示全部楼层
哈哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

8

主题

2万

回帖

52

积分

注册会员

Rank: 2

积分
52
发表于 2023-11-7 07:20:03 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

99

积分

注册会员

Rank: 2

积分
99
发表于 2024-3-16 13:21:45 | 显示全部楼层
hi哦回复iOS就看见
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-4-22 04:48:36 | 显示全部楼层
hi哦回复iOS就看见
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2024-6-4 15:05:10 | 显示全部楼层
额风风风微风微风违法
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-6-13 10:29:29 | 显示全部楼层
逛逛看看瞧瞧
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-8-30 01:15:39 | 显示全部楼层
来看看怎么样
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-23 17:46 , Processed in 0.157457 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表