Javascript大行其道的时候,怎么能少了我来凑凑热闹^_^

  基本上自己对于js的知识储备很少,先前有用过JQuery实现一些简单功能,要论起JS的前世今生,来龙去脉,我就一小白。抱起一本《Javascript Dom编程艺术》,开始慢慢走近JS,与它套近乎,今天是第三天了,从目前来看,比较好相处。就此动笔,是一个回忆复习的过程,权当是自己的一份读书笔记。

  JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

  提到了JS,就很难绕开一个概念DOM(Document Object Model 文档对象模型),个人对这Dom和JS的了解还不是很透彻。按照官方说法:DOM是W3C组织推荐的处理可扩展标志语言的标准编程接口,可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。

  我的理解Dom就是能够将HTML或XML这样的文档进行模型化,将一个文档转换为一个类似树状结构等如下图所示,以便于配合JS语言进行模型中(如HTML网页)元素的添加或移除等操作。由于历史原因,DOM应运而生并成为一种标准。

  一些常用的方法如:

  getElementById():根据给定id属性值得元素节点得到相对应的对象

  如:

<td id = "name"></td>

  通过document.getElementById("name")可以得到的整个td标记,主意这里得到的是一个对象

  getElementsByTagName():根据跟定tag标记名称得到一个相对应的对象数组。

  如:

 <tr>

 <td>one</td>

 <td>two</td>

 </tr>

  通过document.getElementsByTagName("td")就得到所有标记为td的一个对象数组

  getAttribute():根据给定属性名称得到属性值

  如:

<p title="name">jackie is happy</p>

  通过document.getElementsByTagName("p")[0].getAttribute("title"),就可以得到name。

  注意:该方法不能通过document进行调用,只能通过一个元素节点对象来调用它。

  setAttribute():设置某一个属性的值。

  如通过document.getElementsByTagName("p")[0].setAttribute("title","hobby"),则title的属性值就会由name变为hobby。

  另外这里介绍下困扰过我的一个简单的问题,众所周知,Dom有三大节点:元素节点+属性节点+文本节点

  虽然只是简单的概念,但是迫于强迫症,决定要把它们区分清楚,不想在脑海中一直残留着模糊的印象。

  针对三种节点分别从nodeType、nodeName和nodeValue三个方面进行区分比较:

  nodeType:
  元素节点:1

  属性节点:2

  文本节点:3

  对于nodeName以及nodeValue根据不同的情况值也不同,下面举一个例子:

  1.元素节点:

 <HTML>
<HEAD>
<TITLE>区分nodeName和nodeValue</TITLE>
</HEAD>
<BODY>
<table>
<tr>
<td id="Jackie" name="myname">Jackie Z</td>
</tr>
</table>
<script>
var d = document.getElementById("Jackie");
alert(d.nodeType);
alert(d.nodeName);
alert(d.nodeValue) ;
</script>
</BODY>
</HTML>

  运行结果为:

  nodeType:1

  nodeName:td

  nodeValue:null

  2.属性节点:

  <HTML>
<HEAD>
<TITLE>区分nodeName和nodeValue</TITLE>
</HEAD>
<BODY>
<table>
<tr>
<td id="Jackie" name="myname">Jackie Z</td>
</tr>
</table>
<script>
var d = document.getElementById("Jackie").getAttributeNode("name");
alert(d.nodeType);
alert(d.nodeName);
alert(d.nodeValue) ;
</script>
</BODY>
</HTML>

  运行结果如下:

  nodeType:2

  nodeName:name

  nodeValue:myname

  3.文本节点:

  <HTML>
<HEAD>
<TITLE>区分nodeName和nodeValue</TITLE>
</HEAD>
<BODY>
<table>
<tr>
<td id="Jackie" name="myname">Jackie Z</td>
</tr>
</table>
<script>
var d = documentgetElementsByTagName("td")[0].firstChild;
alert(d.nodeType);
alert(d.nodeName);
alert(d.nodeValue) ;
</script>
</BODY>
</HTML>

  运行结果如下:

  nodeType:3

  nodeName:#text(对于所有文本节点nodeName都是固定的

  nodeValue:Jackie Z

  本文链接:《初探JavaScript(一)——也谈元素节点、属性节点、文本节点

  如果对你有用,欢迎点赞哦,也欢迎加群讨论。

友情赞助

如果你觉得博主的文章对你那么一点小帮助,恰巧你又有想打赏博主的小冲动,那么事不宜迟,赶紧扫一扫,小额地赞助下,攒个奶粉钱,也是让博主有动力继续努力,写出更好的文章^^。

    1. 支付宝                          2. 微信

                      

初探JavaScript(一)——也谈元素节点、属性节点、文本节点的更多相关文章

  1. 认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。元素、属性和文本的树结构(节点树)。

    认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码 ...

  2. contents() 查找匹配元素内部所有的子节点(包括文本节点)。如果元素是一个iframe,则查找文档内容

    contents() V1.2概述 查找匹配元素内部所有的子节点(包括文本节点).如果元素是一个iframe,则查找文档内容   示例 描述:大理石平台检定规程 查找所有文本节点并加粗 HTML 代码 ...

  3. Javascript进阶篇——(DOM—节点---属性、访问节点)—笔记整理

    节点属性在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType : ...

  4. js | javascript获取和设置元素的属性

    获取和设置元素的内容: var nv = document.getElementById("pid"); alert(nv.innerHTML); nv.innerHTML=&qu ...

  5. 使用DOM解析XML文件,、读取xml文件、保存xml、增加节点、修改节点属性、删除节点

    使用的xml文件 <?xml version="1.0" encoding="GB2312" ?> <PhoneInfo> <Br ...

  6. 解析xml节点属性及子节点内容

    xml样例 <microNearlyThreeYearsOverdueInfo subReportType="13204" subReportTypeCost="9 ...

  7. XML SelectSingleNode的使用 根据节点属性获取该节点

    unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form ...

  8. 从元素抽取属性,文本和HTML

    问题 在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据. 方法 要取得一个属性的值,可以使用Node.attr(String key) 方法 对于一个元素中的 ...

  9. 004 作业二(单击弹跳li节点的每个文本节点的值;点击每个 li 节点, 若 li 节点的文本值没有 ^^ 开头, 加上,有,则去除)

    1.需求 点击每个 li 节点, 都弹出其文本值 2.程序 <!DOCTYPE html> <html> <head> <meta charset=" ...

  10. jacascript DOM节点——元素节点、属性节点、文本节点

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! DOM节点的三个种类:元素节点.文本节点.属性节点: 元素节点 元素节点就是 HTML 标签元素,元素节点 ...

随机推荐

  1. CSS中强大的EM

    (转)作者:dearjohn ,发布于2012-7-31 http://www.uml.org.cn/html/201207311.asp 使用CSS也好久了,但一直都是在使用“px”来设置Web元素 ...

  2. Linux环境下解压超过4GB的zip文件

    今天在Linux服务器中解压一个zip的压缩包,提示如下错误信息: [root@appsrv01 ZIP_BCSA_COURSES]# unzip BCSA_MEDIAS_BAK_20161118.z ...

  3. 循环处理--sqlserver

    alter PROCEDURE [dbo].[sp_gongzi] @gongzi_yf varchar(7) as DECLARE  @input_id varchar(20)DECLARE  @s ...

  4. html多引号嵌套问题

    将html中的引号使用"代替 <a href="javascript:bootbox.alert('<img src="http://miaoimg.heym ...

  5. PAT/字符串处理习题集(一)

    B1006. 换个格式输出整数 (15) Description: 让我们用字母B来表示"百".字母S表示"十",用"12...n"来表示个 ...

  6. 开始VS 2012中LightSwitch系列的第5部分:我可以使用用户权限来控制访问权吗?

    [原文发表地址]  Beginning LightSwitch in VS 2012 Part 5: May I? Controlling Access with User Permissions [ ...

  7. Windows Phone App的dump文件实例分析- System.ExecutionEngineException

    前言 在开始这篇文章之前我们先来讲讲如何从高度优化的Release版的Dump中找到正确的异常上下文地址,并手动恢复异常发生的第一现场. 1. 什么是异常上下文 简单来说,在windows体系的操作系 ...

  8. [异常解决] MPU6050启动异常读出陀螺仪和加速度计的值全为0的解决办法

    在调试一个自己做的手环,每次用keil烧写好程序运行的蓝牙.陀螺仪都是正常的.但是掉电再上电之后蓝牙是好的.陀螺仪可以读出ID但是读出的加速度和角速度数据全为0. 下面是发生问题时main函数的前面部 ...

  9. redis系列-redis的使用场景

    redis越来越受大家欢迎,提升下速度,做下缓存,完成KPI之利器呀.翻译一篇文章<<How to take advantage of Redis just adding it to yo ...

  10. 纯js 判断手势滑动方向

    $('body').on('touchstart', '#gallerySlider img', function(e) { var touch = e.originalEvent, startX = ...