1.创建新的HTML元素:appendChild();

如需向HTML DOM添加元素,首先必须创建该元素,然后把它追加到已有的元素上;

<div id="div1">

<p id="p1">This is a paragraph.</p>

<p id="p2">This is another paragraph.</p>

</div>

<script>

var para=document.createElement("p");        //创建一个新的<p>元素

var node=document.createTextNode("This is new.");          //首先创建一个文本节点

para.appendChild(node);            //向<p>元素追加文本节点

var element=document.getElementById("div1");          //向查找到一个已有元素

element.appendChild(para);             //向这个已存在的元素追加新元素

</script>

2.创建新的HTML元素:insertBefore()方法;

<div id="div1">

<p id="p1">This is a paragraph.</p>

<p id="p2">This is another paragraph.</p>

</div>

<script>

var para=document.createElement("p");

var node=document.createTextNode("This is new.");

para.appendChild(node);

var element=document.getElementById("div1");

var child=document.getElementById("p1");

element.insertBefore(para,child);

</script>

3.删除已有的HTML元素:如需删除HTML元素,您必须清楚该元素的父元素

<div id="div1">

<p id="p1">This is a paragraph.</p>

<p id="p2">This is another paragraph.</p>

</div>

<script>

var parent=document.getElementById("div1");

var child=document.getElementById("p1");

parent.removeChild(child);     //从父元素中删除子元素

</script>

可以不查找父元素直接删除子元素的常用方法:

var child=document.getElementById("p1");

child.parentNode.removeChild(child);

4.替换HTML元素:如需替换HTML DOM中的元素,请使用replaceChild()方法:

<div id="div1">

<p id="p1">This is a paragraph.</p>

<p id="p2">This is another paragraph.</p>

</div>

<script>

var para=document.createElement("p");

var node=document.createTextNode("This is new .");

para.appendChild(node);

var parent=document.getElementById("div1");

var child=document.getElementById("p1");

parent.replaceChild(para,child);

</script>

5.HTML DOM-事件

**对事件作出反应:如需在用户点击某个元素时执行代码,请把JavaScript代码添加到HTML事件属性中:

<!DOCTYPE html>

<html>

<body>

<h1 onclick="this.innerHTML='Ooops!'">Chick on this text!</h1>

</body>

</html>

**HTML事件属性:如需向HTML元素分配事件,您可以使用事件属性:

<button onclick="displayDate()">Try it</button>

**使用HTML DOM来分配事件:

<script>

document.getElementById("myBtn").onclick=function(){displayDate()};

</script>

**onload和onunload事件

onload事件可用于检查访客的浏览器类型和版本,以便于基于这些信息加载不同版本的网页

onload和onunload事件可用于处理cookies

<body onload="checkCookies()">

**onchange事件:onchange事件常用于输入字段的验证

<input type="text" id="fname" onchange="upperCase()">

**onmouseover和onmouseout事件:用于在鼠标指针移动到或离开元素时触发函数

**onmousedown,onmouseup以及onclick事件:

onmousedown,onmouseup以及onclick事件是鼠标点击的全部过程,首先当鼠标被点击时,触发onmousedown事件,然后,当鼠标被松开时,会触发onmouseup事件,最后,当鼠标点击完成时,触发onclick事件;

6.HTML DOM导航:通过HTML DOM,能够使用节点关系在节点树中导航

**HTML DOM节点列表

var x=document.getElementsByTagName("p");   //选取文档中所有<p>节点

y=x[1];         //通过下标号访问这些节点,访问第二个<p>

**HTML DOM节点列表长度:length属性定义节点列表中节点的数量,可以使用length属性来循环节点列表:

x=document.getElementsByTagName("p");

for(i=0;i<x.length;i++){

document.write(x[i].innerHTML);

document.write("<br />")

}

**能够使用三个节点属性:parentNode,firstChild以及lastChild,在文档结构中进行导航

<html>

<body>                                            //<body>元素是首个<p>元素和<div>元素的父节点(parentNode)

<p id="intro">Hello World!</p>            //首个<p>元素是<body>元素的首个子元素(firstChild)

<div>                                               //<div>元素是<body>元素的最后一个子元素(lastChild)

  <p>The DOM is very useful!</p>

  <p>This example demonstrates node relationships.</p>

<script>

x=document.getElementById("intro");

document.write(x.firstChild.nodeValue);

</script>

</div>

</body>

</html>

**DOM根节点:这里有两个特殊的属性,可以访问全部文档:

document.documentElement-全部文档

document.body-文档主体

<html>

<body>

<p>Hello World!</p>

<div>

  <p>The DOM is very useful!</p>

  <p>This  example demonstrates the <b>document.body</b>property</p>

</div>

<script>

alert(document.body.innerHTML);

</script>

</body>

</html>

**ChildNodes和nodeValue:除了innerHTML属性,也可以使用childNodes和nodeValue属性来获取元素的内容;

<html>

<body>

<p id="intro">Hello World!</p>

<script>

var txt=document.getElementById("intro").childNodes[0].nodeValue;

document.write(txt);

</script>

</body>

</html>

HTML DOM学习之三的更多相关文章

  1. AspectJ基础学习之三HelloWorld(转载)

    AspectJ基础学习之三HelloWorld(转载) 一.创建项目 我们将project命名为:aspectjDemo.然后我们新建2个package:com.aspectj.demo.aspect ...

  2. Linux学习之三-Linux系统的一些重要配置文件

    Linux学习之三-Linux系统的一些重要配置文件 1.网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 说明: DEVICE=eth0        ...

  3. C++11并发学习之三:线程同步(转载)

    C++11并发学习之三:线程同步 1.<mutex> 头文件介绍 Mutex又称互斥量,C++ 11中与 Mutex 相关的类(包括锁类型)和函数都声明在 <mutex> 头文 ...

  4. 前端基础-BOM和DOM学习

    JavaScript分为 ECMAScript,BOM,DOM. BOM:是指浏览器对象模型,使JavaScript有能力与浏览器进行对象. DOM:是指文档对象模型,通过它,可以访问HTML文档的所 ...

  5. HTML DOM 学习

    HTML DOM 学习 By: Mirror王宇阳 E-mail:2821319009@qq.com 博客主页:https://www.cnblogs.com/wangyuyang1016/ DOM ...

  6. jackson学习之三:常用API操作

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. JavaScript DOM学习总结(一)

    DOM 什么是DOM?简单地说DOM是一套对文档内容进行抽象和概念化的方法.   W3C给出的DOM定义是这样的:"一个与系统平台和编程语言无关的接口,程序和脚本以通过这个接口动态的访问和修 ...

  8. Js dom 学习

    节点类型 文档节点: 一棵DOM树的顶端是文档节点,它呈现为整个页面(相当于document对象),当需要访问任何元素.属性或文本节点时,都需要通过文档节点来进行导航.(document.) 元素节点 ...

  9. TCP学习之三:客户端、服务端同步传输字符串

    参考学习张子阳大神的博客:http://www.cnblogs.com/JimmyZhang/category/101698.html 一个客户端.发送一条消息 客户端: 服务端: 注意:Networ ...

随机推荐

  1. sqlserverJDBC驱动链接

    final String DRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver"; final String URL=" ...

  2. EF没有同步更新(转)

    不知道这算不算一个bug,当你新建一个从数据库生成的edmx时,他能正确的生成所有的tt文件,但是当你从数据库更新表结构时,他不能正确的更新tt文件,以建立Model1.edmx为例,在解决方案中展开 ...

  3. javascript 操作cookie

    function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDa ...

  4. modbus协议讲义

        Modbus 一个工业上常用的通讯协议.一种通讯约定.Modbus协议包括RTU.ASCII.TCP.其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现.虽然RTU比较简单,但是看 ...

  5. 【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable

    来源:https://my.oschina.net/stonezing/blog/515480 方案一: 进入/etc/sysconfig/network-scripts/ 查看这下面的文件 每个人的 ...

  6. java课后作业6

    一.运行TestInherits.java 结论:通过super调用基类构造方法,必须是子类构造方法中的第一个语句. 二.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不 ...

  7. python基础——错误处理

    python基础——错误处理 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数 ...

  8. Android中通过反射获取资源Id

    package com.cp.utils; import android.content.Context; public class CPResourceUtil { public static in ...

  9. codevs 1702素数判定2

    Miller-Rabin算法实现,但是一直被判题程序搞,输入9999999999得到的结果分明是正确的但是一直说我错 #include <cstdio> #include <cmat ...

  10. mysql优化学习笔记

    优化sql的一般步骤 通过show status了解各种sql的执行频率 定位执行效率低的sql语句 通过explain分析效率低的sql 通过show profile分析sql 通过trace分析优 ...