javascript的节点的概念
<html>
<head>
<title></title>
</head>
<body> </body>
</html>
文档节点是每个文档的根节点.
在我们的页面中,文档节点只有一个子节点即<html>.我们称之为文档元素.在XML中,没有预定义的元素,因此任何元素都有可能成为文档元素
javsccript中的所有节点类型都继承自Node类型.所以所有的节点都有着相同的基本属性和方法.
没个节点都有一个nodeType属性.用于表明节点的类型.
NODE.ELEMENT_NODE 1
NODE.ATTRIBUTE_NODE 2
NODE.TEXT_NODE 3
NODE.CDATA_SECTION_NODE 4
NODE.ENTITY_REFERENCE_NODE 5
NODE.ENTITY_NODE 6
NODE.PROCESSING_INSTRUCTION_NODE 7
NODE.COMMENT_NODE 8
NODE.DOCUMENT_NODE 9
NODE.DOCUMENT_TYPE_NODE 10
NODE.DOCUMENT_FRAGMENT_NODE 11
NODE.NOTATION_NODE 12
window.onload = function () {
var oDiv = document.getElementById("guoDiv");
if (oDiv.nodeType == Node.ELEMENT_NODE) {//在IE下会报错
alert("不好暴露了");
}
else
alert("没被发现");
}
上面的代码(Node.ELEMENT_NODE)在IE中会报错,
因为IE没有公开NODE的类型构造函数.
为了确保浏览器的兼容性,可以这个样子写
window.onload = function () {
var oDiv = document.getElementById("guoDiv");
if (oDiv.nodeType == 1) {//在IE下会报错
alert("不好暴露了");
}
else
alert("没被发现");
}
要了解节点的具体信息,可以使用nodeName和nodeValue这两个属性
window.onload = function () {
var oDiv = document.getElementById("guoDiv");
alert(oDiv.nodeName); //DIV
alert(oDiv.nodeValue);//null
}
每个节点都有一个childNodes属性,其中保存着一个NodeList对象.
NodeList是一种类数组对象,用于保存一组有序的节点,可以通过位置来访问这些节点.
注意NodeList不是Array实例.虽然他有length属性,也可以通过方括号访问NodeList值.
NodeList对象的独特之在于,它实际上是基于DOM结构动态执行查询的结果,因此DOM结构的变化能够自动反映在ModeList对象上.
所以NodeList是有生命,有呼吸,而不是在我们第一次访问他们的属性时拍摄下来的一张快照.
window.onload = function () {
var oDiv = document.getElementById("divFather");
var firstChild = oDiv.childNodes[1];
alert(firstChild.innerHTML);//
}
NodeList不是数组,那么就不能使用数组的方法了.
下面是将NodeList转换成数组
function converToArray(nodes) {
var array = null;
try {
array = Array.prototype.slice.call(nodes, 0); //针对非IE
}
catch (e) {
array = [];
for (var i = 0, len = nodes.length; i < len; i++) {
array.push(nodes[i]);
}
}
return array;
}
javascript的节点的概念的更多相关文章
- 前端之javascript的节点操作和Event
一 节点的增删改查 创建节点:createElement(标签名):创建一个指定名称的节点. 追加节点: 追加一个子节点:somenode.appendChild(标签名) 指定某个位置前面添加一个节 ...
- JavaScript入门几个概念
JavaScript入门几个概念 刚刚入门JavaScript的时候,搞懂DOM.BOM以及它们的对象document和window很有必要. DOM是为了操作文档出现的API,document是它的 ...
- Javascript高级程序设计——基本概念(一)
一.语法 EMCA-262通过叫做ECMAScript的“伪语言”为我们描述了javascript实现的基本概念 javascript借鉴了C的语法,区分大小写,标示符以字母.下划线.或美元符号($) ...
- javascript判断节点是否在dom
在项目中碰到同事写的一段代码: //焦点必须在实时dom树中 if (ele && typeof this.document.contains === "function&q ...
- javascript创建节点的事件绑定
javascript创建节点的事件绑定 timeupdate事件是<video>中用来返回视频播放进度的事件,绑定在<video>标签返回视频播放位置(每秒计). 现video ...
- JavaScript基础1——基本概念
关于JS的概念 JavaScript 是一种弱类型语言. JavaScript 是一种客户端脚本语言(脚本语言是一种轻量级的编程语言). JavaScript是基于对象的.(因为面向对象需要具有封装. ...
- JavaScript DOM节点和文档类型
以下的例子以此HTML文档结构为例: <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- 【转】JavaScript获取节点类型、节点名称和节点值
DOM节点信息包括节点类型(nodeType).节点名称(nodeName)和节点值(nodeValue). 节点类型 DOM节点中,每个节点都拥有不同的类型.W3C规范中常用的 DOM节点类型有以下 ...
- javascript中闭包的概念
这个是每个前端工程师绕不开的一个问题,网上各种资料很多,整个春节,我仔细研读了红皮经典中关于这一块的注释,加深了对这一块的理解. 有好几个概念需要重申一下.以下都是我的理解: 1. 闭包是javasc ...
随机推荐
- php变量和字符串连接符——点
连接符——点,本身也是一种运算符.它真正的名字应该叫“字符运算符”.作用是把两个字符串连接起来. echo 字符 . 变量 . 字符; //点号把三个值连接成为一个,运行正常. 例: 1.字符串+变 ...
- Python装饰器的通俗理解
转载:http://blog.csdn.net/u013471155 在学习Python的过程中,我相信有很多人和我一样,对Python的装饰器一直觉得很困惑,我也是困惑了好久,并通过思考和查阅才能略 ...
- Laravel学习之旅(三)
视图 一.怎么新建视图: 1.视图默认存放路径:resources/views: 2.laravel模板支持原生的PHP,直接可以在resources/views新建一个PHP文件,例如: index ...
- 51Nod:完美字符串
约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同. ...
- HDU 4619 Warm up 2 贪心或者二分图匹配
给同一张横着的牌的所在的格子编同一样的号,这些格子对应x集合,给同一张竖着的牌所在的格子编同一样的号,对应y集合,同一个格子上既有横着的牌又有竖着的牌,那么就建一条边,有冲突就要拿走一张,结果是总的牌 ...
- Oracle 多行合并一行 方法
假如有如下表,其中各个i值对应的行数是不定的 SQL> select * from t; I A D ---------- ---------- --------------- ...
- 时间操作(JavaScript版)—年月日三级联动(默认显示系统时间)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/35263317 这个功能 ...
- 用vbs打开文件
set ws=createobject("wscript.shell")ws.run"打开文件所使用的程序+空格+程序路径",x,ture Run方法有三个参数 ...
- MySQL · 特性分析 · 优化器 MRR & BKA【转】
MySQL · 特性分析 · 优化器 MRR & BKA 上一篇文章咱们对 ICP 进行了一次全面的分析,本篇文章小编继续为大家分析优化器的另外两个选项: MRR & batched_ ...
- vue-cli、webpack提取第三方库-----DllPlugin、DllReferencePlugin
需要安装的插件有 extract-text-webpack-plugin assets-webpack-plugin clean-webpack-plugin npm install extract- ...