比较详细的javascript DOM 学习笔记第2/2页

 更新时间:2008年06月21日 22:53:58   作者:  
看了很多的js dom学习资料,发现这个比较详细,特转载给大家学习一下

5.创建新节点
最常用到的几个方法是
createDocumentFragment()--创建文档碎片节点
createElement(tagname)--创建标签名为tagname的元素
createTextNode(text)--创建包含文本text的文本节点

createElement()、createTextNode()、appendChild()
 

<html>
    
<head>
        
<title>createElement() Example</title>
        
<script type="text/javascript">
            
function createMessage() {
                
var oP = document.createElement("p");
                
var oText = document.createTextNode("Hello World!");
                oP.appendChild(oText);
                document.body.appendChild(oP);
            }
        
</script>
    
</head>
    
<body onload="createMessage()">
    
</body>
</html>


removeChild()、replaceChild()、insertBefore()
删除节点
 

<html>
    
<head>
        
<title>removeChild() Example</title>
        
<script type="text/javascript">
            
function removeMessage() {
                
var oP = document.body.getElementsByTagName("p")[0];
                oP.parentNode.removeChild(oP);
            }
        
</script>
    
</head>
    
<body onload="removeMessage()">
        
<p>Hello World!</p>
    
</body>
</html>

替换
 

<html>
    
<head>
        
<title>replaceChild() Example</title>
        
<script type="text/javascript">
            
function replaceMessage() {
                
var oNewP = document.createElement("p");
                
var oText = document.createTextNode("Hello Universe!");
                oNewP.appendChild(oText);
                
var oOldP = document.body.getElementsByTagName("p")[0];
                oOldP.parentNode.replaceChild(oNewP, oOldP);
            }
        
</script>
    
</head>
    
<body onload="replaceMessage()">
        
<p>Hello World!</p>
    
</body>
</html>

新消息添加到旧消息之前
 

<html>
    
<head>
        
<title>insertBefore() Example</title>
        
<script type="text/javascript">
            
function insertMessage() {
                
var oNewP = document.createElement("p");
                
var oText = document.createTextNode("Hello Universe!");
                oNewP.appendChild(oText);
                
var oOldP = document.getElementsByTagName("p")[0];
                document.body.insertBefore(oNewP, oOldP);
            }
        
</script>
    
</head>
    
<body onload="insertMessage()">
        
<p>Hello World!</p>
    
</body>
</html>


createDocumentFragment()
一旦把节点添加到document.body(或者它的后代节点)中,页面就会更新并反映出这个变化。对于少量的更新,这是很好的,然而,当要向document添加大量数据时,如果逐个添加这些变动,这个过程有可能会十分缓慢。为解决这个问题,可以创建一个文档碎片,把所有的新节点附加其上,然后把文档碎片的内容一次性添加到document中,假如想创建十个新段落。
 

<html>
    
<head>
        
<title>insertBefore() Example</title>
        
<script type="text/javascript">
            
function addMessages() {
                
var arrText = ["first""second""third""fourth""fifth""sixth""seventh""eighth""ninth""tenth"];

                
var oFragment = document.createDocumentFragment();

                
for (var i=0; i < arrText.length; i++) {
                    
var oP = document.createElement("p");
                    
var oText = document.createTextNode(arrText[i]);
                    oP.appendChild(oText);
                    oFragment.appendChild(oP);
                }

                document.body.appendChild(oFragment);

            }
        
</script>
    
</head>
    
<body onload="addMessages()">

    
</body>
</html>


6.让特性像属性一样
大部分情况下,HTML DOM元素中包含的所有特性都是可作为属性。
假设有如下图像元素:
<img src = "mypicture.jpg" border=0 />
如果要使用核心的DOM来获取和设置src和border特性,那么要用getAttribute()和setAttribute()方法:
alert(oImg.getAttribute("src"));
alert(oImg.getAttribute("border"));
oImg.setAttribute("src","mypicture2.jpg");
oImg.setAttribute("border",1);
然而,使用HTML DOM,可以使用同样名称的属性来获取和设置这些值:
alert(oImg.src);
alert(oImg.border);
oImg.src="mypicture2.jpg";
oImg.border ="1";
唯一的特性名和属性名不一样的特例是class属性,它是用来指定应用于某个元素的一个CSS类,因为class在ECMAScript中是一个保留字,在javascript中,它不能被作为变量名、属性名或都函数名。于是,相应的属性名就变成了className;
注:IE在setAttribute()上有很大的问题,最好尽可能使用属性。

7.table方法
为了协助建立表格,HTML DOM给<table/>,<tbody/>和<tr/>等元素添加了一些特性和方法。
给<table/>元素添加了以下内容:

特性/方法 说明
caption 指向<caption/>元素并将其放入表格
tBodies <tbody/>元素的集合
tFoot 指向<tfoot/>元素(如果存在)
tHead 指向<thead/>元素(如果存在)
rows 表格中所有行的集合
createTHead() 创建<thead/>元素并将其放入表格
createTFood() 创建<tfoot/>元素并将其放入表格
createCpation() 创建<caption/>元素并将其放入表格
deleteTHead() 删除<thead/>元素
deleteTFood() 删除<tfoot/>元素
deleteCaption() 删除<caption/>元素
deleteRow(position) 删除指定位置上的行
insertRow(position) 在rows集合中的指定位置上插入一个新行

<tbody/>元素添加了以下内容
特性/方法 说明
rows <tbody/>中所有行的集合
deleteRow(position) 删除指定位置上的行
insertRow(position) 在rows集合中的指定位置上插入一个新行

<tr/>元素添加了以下内容
特性/方法 说明
cells <tr/>元素中所有的单元格的集合
deleteCell(postion) 删除给定位置上的单元格
insertCell(postion) 在cells集合的给点位置上插入一个新的单元格

8.遍历DOM
NodeIterator,TreeWalker
DOM Level2的功能,这些功能只有在Mozilla和Konqueror/Safari中才有,这里就不介绍了。

相关文章

  • uni-app如何读取本地json数据文件并渲染到页面上

    uni-app如何读取本地json数据文件并渲染到页面上

    在做前端开发的时候,少不了要用一些模拟的json的数据来进行测试,这篇文章主要给大家介绍了关于uni-app如何读取本地json数据文件并渲染到页面上的相关资料,需要的朋友可以参考下
    2022-08-08
  • uniapp使用uni-imei插件获取手机的设备号

    uniapp使用uni-imei插件获取手机的设备号

    uniapp框架是一款开发跨平台应用的工具,它支持iOS、Android以及Web等多个平台,在这些平台中,uniapp可以访问某些设备的硬件信息,这篇文章主要给大家介绍了关于uniapp使用uni-imei插件获取手机设备号的相关资料,需要的朋友可以参考下
    2024-01-01
  • 基于Bootstrap实现城市三级联动

    基于Bootstrap实现城市三级联动

    这篇文章主要为大家详细介绍了基于BootStrap实现城市三级联动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Popup弹出框添加数据实现方法

    Popup弹出框添加数据实现方法

    这篇文章主要为大家详细介绍了Popup弹出框添加数据的简单实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • JavaScript中arguments的使用方法

    JavaScript中arguments的使用方法

    这篇文章主要介绍了JavaScript中arguments的使用方法,arguments 是一个对应于传递给函数的参数的类数组对象。下文详细介绍,需要的小伙伴可以参考一下
    2022-05-05
  • JS制作简易计算器的实例代码

    JS制作简易计算器的实例代码

    这篇文章主要介绍了JS制作简易计算器的方法,文中实例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Prototype框架详解

    Prototype框架详解

    Prototype是一个JavaScript框架,旨在简化动态Web应用程序的开发。原型被称为作为一个单一的文件分发的prototype.js,本文给大家介绍prototype框架,感兴趣的朋友一起学习吧
    2015-11-11
  • JavaScript知识点总结(四)之逻辑OR运算符详解

    JavaScript知识点总结(四)之逻辑OR运算符详解

    这篇文章主要介绍了JavaScript知识点总结(四)之逻辑OR运算符详解的相关资料,在JavaScript中,逻辑OR运算符用||表示。本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-05-05
  • innerHTML 和 getElementsByName 在IE下面的bug 的解决

    innerHTML 和 getElementsByName 在IE下面的bug 的解决

    innerHTML 真的一个麻烦的东西。IE 和 firefox 对dom 处理的方式不是很一样。IE 对动态加载的很多dom 不支持动态更新。
    2010-04-04
  • 原生JS实现图片跑马灯特效

    原生JS实现图片跑马灯特效

    这篇文章主要为大家详细介绍了原生JS实现图片跑马灯特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论