javascript-节点属性详解

根据 DOM,HTML 文档中的每个成分都是一个节点。

  DOM 是这样规定的:

    整个文档是一个文档节点
    每个 HTML 标签是一个元素节点
    包含在 HTML 元素中的文本文本节点
    每一个 HTML 属性是一个属性节点
    注释属于注释节点

一、如何获得节点引用

1.旧的获取节点引用方式
  getElementById()

//查找文档中的一个特定的元素,最有效的方法是 getElementById(),一定要有document
var outdiv=document.getElementById("outdiv"); var childs=outdiv.childNodes; alert(childs.length);

getElementByTagName()   //返回带有指定标签名的对象集合

getElementByName()
*******************************************
劣势:
1.浪费内存
2.逻辑性不强
*******************************************

2.通过节点 关系属性 获得节点的引用
对象.parentNode 获得父节点的引用

    //父节点

     var innerdiv=document.getElementById("innerdiv");
var father=innerdiv.parentNode;
alert(father.nodeName);

对象.childNodes 获得子节点的集合

对象.firstChild 获得第一个子节点
对象.lastChild 获得最后个子节点

     //最后一个子节点

     var innerdiv=document.getElementById("innerdiv");
var last=innerdiv.lastChild;
alert(last.nodeName);

对象.nextSibling 获得下一个兄弟节点的引用

对象.previousSibling 获得上一个兄弟节点的引用

****************************************************************
劣势:兼容性不好。

FF会把例如</div>后面的所有的空白节点都读成一个子节点

IE会把最后一个空白节点读成子节点

****************************************************************

二、节点的信息(属性)

节点类型 节点名字 节点值
nodeType(数值) nodeName nodeValue

nodeType 属性返回以数字值返回指定节点的节点类型。

如果节点是元素节点,则 nodeType 属性将返回 1。

如果节点是属性节点,则 nodeType 属性将返回 2

元素节点 1 标签名 null
属性节点 2 属性名 属性值
文本节点 3 #text 文本
注释节点 8 #comment 注释的文字
文档节点 9 #document null

        alert(outdiv.nodeType)
alert(document.nodeType)
alert(document.nodeName)
alert(document.nodeValue)

三、兼容性的方法

javascript-节点的增、删、改、查实例讲解

一、创建节点

  1>创建元素节点
    document.createElement("元素标签名");

   var elea=document.createElement("a");
elea.href="#";
elea.title="我是一个链接";
elea.innerHTML="链接";
elea.style.color="red"; document.body.appendChild(elea);

  2>创建属性节点
    document.createAttribute("属性名");
    对象.属性="属性值"
    对象.setAttribute(属性名,属性值)
    对象.getAttribute(属性名,属性值)
  3>创建文本节点
    对象.innerHTML="";

elea.innerHTML="链接";

    document.createTextNode("文本");

    var h3text=document.createTextNode("后盾网视频教程");

二、追加到页面当中

  父对象.appendChild(追加的对象) 插入到最后

document.body.appendChild(elea);

  父对象.insertBefore(要插入的对象,之前的对象) 插入到最后

   var innerdiv=document.getElementById("innerdiv");
var spans=innerdiv.firstChild;
var eleh3=document.createElement("h3");
var h3text=document.createTextNode("后盾网视频教程");
eleh3.appendChild(h3text);
innerdiv.insertBefore(eleh3,spans);

三、修改(替换)节点

  父对象.replaceChild(要修改的对象,被修改的);

   innerdiv.replaceChild(elep,eleh3)

四、删除节点

  父对象.removeChild(删除的对象)
  如果确定要删除节点,最好也清空内存 对象=null;

   innerdiv.removeChild(elep)
elep=null;
alert(elep.innerHTML);

JavaScript学习笔记——节点的更多相关文章

  1. javascript学习笔记(四) Number 数字类型

    数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学 ...

  2. Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  3. Javascript学习笔记四——操作表单

    Javascript学习笔记 大多网页比如腾讯,百度云之类的需要登陆,用户输入账号密码就可以登陆,那么浏览器是如何获取用户的输入的呢?今天就记录一下操作表单. 操作表单与操作DOM是差不多的,表单本身 ...

  4. Javascript学习笔记三——操作DOM(二)

    Javascript学习笔记 在我的上一个博客讲了对于DOM的基本操作内容,这篇继续巩固一下对于DOM的更新,插入和删除的操作. 对于HTML解析的DOM树来说,我们肯定会时不时对其进行一些更改,在原 ...

  5. Javascript学习笔记二——操作DOM

    Javascript学习笔记 DOM操作: 一.GetElementById() ID在HTML是唯一的,getElementById()可以定位唯一的一个DOM节点 二.querySelector( ...

  6. Javascript学习笔记——操作浏览器对象

    Javascript学习笔记 目前尝试利用javascript去对于一个浏览器对象完成一系列的访问及修改, 浏览器是网页显示.运行的平台,常用的浏览器有IE.火狐(Firefox).谷歌(Chrome ...

  7. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  8. Java程序猿的JavaScript学习笔记(8——jQuery选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  9. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

随机推荐

  1. 总有一天会NB的! SB一样的坚持会有NB一样的结果的!

    第一天: 1.背景图不显示,因为背景图片无法撑开div,所以必须自己设置div的高度哦! 2.div水平居中! A:margin-left:auto;margin-right:auto;  B: 父元 ...

  2. 如何使用国内源部署Ceph?

    由于网络方面的原因,Ceph的部署经常受到干扰,通常为了加速部署,基本上大家都是将Ceph的源同步到本地进行安装.根据Ceph中国社区的统计,当前已经有国内的网站定期将Ceph安装源同步,极大的方便了 ...

  3. iPad开发--美团界面的搭建(主要是对Popover的使用,以及监听)

    一.主界面的搭建,效果图.设置self.navigationItem.leftBarButtonItems属性. 由于leftBarButtonItem是通过xib文件创建的,通过xib创建的控件默认 ...

  4. git 删除和重命名文件

    1. 删除文件 git rm a.txt git rm--cached filename 会删除索引中的文件并把它保留在工作目录中 而 git rm 则会将文件从索引和工作目录中都删除 文件删除后的恢 ...

  5. Java中为什么main()中不能创建内部类对象?

    对main方法而言,虽然写在类中,它是游离于任何类之外的,因此某类的非静态内部类对它而言是不直接可见的,也就无法直接访问 . 1:非静态内部类,必须有一个外部类的引用才能创建. 2:在外部类的非静态方 ...

  6. 解决bind错误 bind: Address already in use

    关于bind错误的处理: bind: Address already in use 原因: 操作系统没有立即释放端口 解决一: 等待一段时间运行网络程序即可 解决二:通过setsockopt进行设置, ...

  7. [cf140e]New Year Garland

    Description 用$m$种颜色的彩球装点$n$层的圣诞树.圣诞树的第$i$层恰由$l[i]$个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不同. 求有多少种装点 ...

  8. 【caffe】三种文件类别:solver,model和weights

    @tags: caffe 文件类别 solver文件 是一堆超参数,比如迭代次数,是否用GPU,多少次迭代暂存一次训练所得参数,动量项,权重衰减(即正则化参数),基本的learning rate,多少 ...

  9. 公司内多个公众号实现账号互通(UnionID机制处理)

    场景: 由于用户在每个公众号上的OpenID都不一样,如果要实现判断判断某个用户在其中一个公众号上已经绑定过,那么就要借助(UnionID机制)的机制. 条件: 1.拥有微信开放平台账号,且认证(ht ...

  10. 关于《加密与解密》的读后感----对dump脱壳的一点思考

    偶然翻了一下手机日历,原来今天是夏至啊,时间过的真快.ISCC的比赛已经持续了2个多月了,我也跟着比赛的那些题目学了2个月.......虽然过程很辛苦,但感觉还是很幸运的,能在大三的时候遇到ISCC, ...