JavaScript---DOM文档

DOM文档中,每个节点都有一些重要的属性:

  • 最重要的是nodeType,它描述该节点是什么---元素(element)、属性(attribute)、注释(comment)、文本(text)或者其他几种类型(共12个),nodeType:1表示元素节点,3表示文本节点。
  • 另外一个重要的性质是nodeName,它表示元素的名字,如果是文本节点的话,则表示#text,根据文档类型和用户代理,nodeName可以是大写的,也可以是小写的,正是由于这个原因,在测试特定名称的时候,最好将其转化为小写。可以使用string对象的toLowerCase()方法来实现:if(obj.nodeName.toLowerCase()==‘li‘{});对于元素节点,可以使用tagName属性
  • nodeValue是节点的值:如果这个节点是元素,则它为null,如果元素是文本节点,则它为文本内容。对于文本节点,可以读取或设置nodeValue,从而能够更改元素的文本内容;
            //修改文本节点的内容,文本节点是nodeValue---
            //这样写不起作用,第一个段落是一个元素节点,要改变段落内部的文本,就要访问内部的文本节点,即,这个段落标签的第一个子节点
            var firstP = document.getElementsByTagName("p")[0].nodeValue = "hello world";
            alert(firstP);
            var SecondP = document.getElementsByTagName("p")[0].firstChild.nodeName = "hello world again";
            alert(SecondP);

<body>
    <h1>我是标题1</h1>
    <p>我是段落标签</p>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li><a href="http://www.baidu.com">百度一下,你就知道</a></li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
    </ul>
    <p>段落尾部1</p>
    <p>段落尾部2</p>
</body>

HTML

修改前效果图:

修改后效果图:

从父节点到子节点

firstChild属性是个简便用法,每个元素都可以有任意数量的子节点,可以通过childNodes属性列出来:

  • childNodes是所有该元素第一层子节点列表--并不包括向下更深的层次;
  • 可以通过数组计数器或者item方法访问当前元素的子元素;
  • 简便用法yourElement.firstChild和yourElement.lastChild是yourElement.childNodes[0]和yourElement.childNodes(yourElement.childNodes.length-1)的简化版本,可以使访问更简便一些;
  • 可以通过方法hasChildNodes()检查一个元素是否,有子节点,他会返回一个bool值

现在我们来做一个例子,遍历元素的子节点:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript">
        function MyFunction() {
            var domString = "";
            //判断是否支持DOM
            if (!document.getElementById || !document.createTextNode) {
                return;
            }
            var demoList = document.getElementById("myList");
            //判断给定Id的ul元素,是否定义过
            if (!demoList) {
                return;
            }
            //判断ul元素是否有子节点
            if (demoList.hasChildNodes()) {
                //有子节点的话,就遍历出来
                var ch = demoList.childNodes;  //获取子节点
                for (var i = 0; i < ch.length; i++) {
                    //获取子节点的名称nodeName
                    domString += ch[i].nodeName + "\n";
                }
                alert(domString);
            }

        }
    </script>
</head>
<body>
    <form>
        <ul id="myList">
            <li>列表1</li>
            <li>列表2</li>
            <li><a href="http://www.baidu.com">百度一下,你就知道~~~</a></li>
            <li>列表4</li>
            <li><p>夕阳无限好,只是近黄昏</p></li>
            <li>列表6</li>
            <li>列表7</li>
        </ul>
        <input type="submit" onclick="MyFunction()" value="hello,点击我呀~~~" />
    </form>
</body>
</html>

效果图:

从子节点到父节点

通过parentNode属性可以,从子节点到父节点。下面我们来,做一个例子:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>通过子节点获取父节点</title>
    <script type="text/javascript">
        function MyFunction() {
            var myTaoBaoList = document.getElementById("myTaoBaoList");
            //获取父节点的名称
            var myfaterNode_TaoBao = myTaoBaoList.parentNode.nodeName;
            alert(myfaterNode_TaoBao);
            //获取祖宗节点(父节点的父节点)
            var mygrantfaterNode_TaoBao = myTaoBaoList.parentNode.parentNode.nodeName;
            alert(mygrantfaterNode_TaoBao);
        }
    </script>
</head>
<body>
    <ul>
        <li>列表1</li>
        <li>列表2</li>
        <li><a href="http://www.taobao.com" id="myTaoBaoList">淘宝网</a></li>
        <li>列表4</li>
        <li>列表5</li>
    </ul>
    <input type="submit" value="点我呀,看你点不点~~~" onclick="MyFunction()" />
</body>
</html>

效果图:

时间: 2024-10-29 19:09:58

JavaScript---DOM文档的相关文章

JavaScript : DOM文档解析详解

JavaScript DOM  文档解析 1.节点(node):来源于网络理论,代表网络中的一个连接点.网络是由节点构成的集合 <p title=“a gentle reminder”> Don’t forget to buy this stuff.</p> 节点及其类型 元素节点: 属性节点:元素的属性,可以直接通过属性的方式来操作 文本节点:元素节点的子节点,其内容通常为文本 2.Node接口的特性和方法 现在给出一个演示的HTML文件: html <!doctype h

Javascript 强制浏览器渲染Dom文档

当浏览器在执行一段js代码的过程中,一般不会立即更新渲染dom文档,而是在整段代码执行完毕的时候才去更新dom文档. 浏览器这么实现,是为了尽可能提高性能.但这种实现有时候会给我们带来一些意外的负面效果. js访问以下 Dom属性的时候,浏览器都会先渲染Dom文档,再获得相关的属性.从而强制浏览器立即渲染Dom文档. offsetTop, offsetLeft, offsetWidth, offsetHeightscrollTop, scrollLeft, scrollWidth, scroll

ExtJs4学习(二):Dom文档操作

现在主流的JS框架要数ExtJs和JQuery应用的比较广泛.JQuery属于轻量级的,一般做网站应用比较常见,可见块头小的优势.ExtJs比较庞大,它除了对基本的JS语法和HTML DOM操作方式的封装之外,还提供了一套强大的UI库.在企业级B/S解决方案应用上独占优势.就单说它在原生JS的封装,DOM操作方式封装方面也足以藐视JQuery.下面我就通过对比API,体现两种框架的异曲同工之处.我们已JQuery API为主线,来看看ExtJs是否有替代的方案. 注意一点:ExtJs4.0相对上

Javascript 在线文档

http://jquery.com/    jQuery http://jqueryui.com/  jQuery UI http://plugins.jquery.com/caret/    输入框文字选择与光标位置处理 http://www.examplet.org/jquery/caret.php  示例代码 http://requirejs.org      require.js http://angularjs.org/   Google 推出的SPA( single-page-app

JavaScript 充实文档内容

JavaScript 充实文档内容 一:简介 使用JavaScript来充实文档内容.主要目的是为现有文档创建一个"缩略语列表"."文献来源链接"."快捷键清单".基本都是前面使用过的函数.没有什么要特别说明的地方. 二:效果图 三:具体内容 HTML的内容的编写可以使用Sublime Text (安装Emmet插件).或者Jetbrain的Webstorm神器.效率提高N倍.有兴趣的可以百度谷歌Emmet简介. example.html: &l

JavaScript触发文档事件和窗口事件

转载请注明出处:http://www.uphtm.com/js/128.html 浏览器窗口本身理解一些事件,包括从当载入页面的时候触发的事件,到当访问者离开页面的时候触发的事件: ·load.当Web浏览器完成下载Web页面文件的全部内容之后(HTML文件本身,加上任何链接图像.Flash电影和外部的CSS和JavaScript文件),load事件触发.Web设计师习惯上会使用这个事件来启动操作Web页面的任何程序.然而,如果有很多的图形或者其他较大的链接文件的话,载入一个Web页面及其所有的

ready是先执行的,load后执行,DOM文档的加载步骤

在jq中在文档载入完毕后有这几种方式去执行指定函数: $(document).ready(function() { // ...代码... }); //document ready 简写 $(function() { // ...代码... }); $(window).load(function() { // ...代码... }); $(function(){}) 的方式其实是 $(document).ready() 的简写,具体可以看看jq构造器那块. ready与load谁先执行 这个问题

JavaScript学习总结(一)DOM文档对象模型

一.文档(D) 一个网页运行在浏览器中,他就是一个文档对象. 二.对象(O) "对象"是一种自足的数据集合.与某个特定对象相关联的变量被称为这个对象的属性,只能通过某个对象调用的函数被称为这个对象的方法. JavaScript中有三种类型的对象: ①用户自定义对象:不做了解 ②内建对象(native object):JavaScript中一开始就存在的.列如Array,Math,Date等(JavaScript语法区分大小写) ③宿主对象(host object):由浏览器提供的对象.

JavaScript学习笔记7 之DOM文档对象模型

一.什么是DOMDocument Object Model 文档 -------对象 ----模型-------缩写DOM DOM是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分.DOM树中的所有节点均可通过JS进行访问.所有HTML元素(节点)均可被修改.创建或删除. 二.节点类型1.节点类型 HTML 文档中的所有内容都是节点(node): 整个文档是一个文档节点每个 HTML 元素是元素节点HTML 元素

JavaScript之DOM文档对象模型

1.DOM是文档对象模型(Document Object Model)的简称. 当网页加载时,可以将结构化文档在内存中转换成对象树. 简单的说,DOM并不是一种技术,而是一种访问结构化文档的思想.借助DOM模型,我们可以对DOM树进行修改.删除.新增等操作,让结构化文档动态化. 2.DOM模型中的节点--文档可以说是由节点构成的集合.在DOM模型中有以下3种节点: (1)元素节点:各种标签就是这些元素节点的名称,如<ul>.<p>等: (2)文本节点:文本节点总是被包含在元素节点的