1、Node:节点
元素节点->HTML标签
文本节点->文字 但是在标准浏览器(除了IE6~8)中会把空格和换行都当做文本节点来处理
注释节点->注释
document

2、节点的特征
元素节点:
nodeType->1 nodeName->大写的标签名 nodeValue->null
文本节点:
nodeType->3 nodeName->#text nodeValue->文本内容
注释节点:
nodeType->8 nodeName->#comment nodeValue->注释内容

document:
nodeType->9 nodeName->#document nodeValue->null

3、节点之间关系的属性
childNodes:获取所有的子节点(既有元素的,也有文本和注释的)
children:获取所有的元素子节点 ->在IE6~8下我们获取的结果不完全准

parentNode:获取父亲节点
previousSibling:获取上一个哥哥节点(可能是元素也可能文本或者注释)
previousElementSibling:获取上一个元素哥哥节点(肯定是元素节点) ->在IE6~8下不兼容
nextSibling:获取下一个弟弟节点
nextElementSibling:获取下一个元素弟弟节点 ->在IE6~8下不兼容
firstChild:获取所有子节点中的第一个(不一定是元素)
firstElementChild:获取所有元素子节点中的第一个(一定是元素节点) ->在IE6~8下不兼容
lastChild:获取所有子节点中的最后一个(不一定是元素)
lastElementChild:获取所有元素子节点中的最后一个(一定是元素节点) ->在IE6~8下不兼容

//获取指定元素下的所有元素子节点

//思路:先获取所有的子节点,然后我们在把其中的元素子节点(nodeType等于1)单独的获取到

function queryChildren(curEle) {
var ary = [];//->先弄个容器用来存储我们需要的元素子节点
var allNodes = curEle.childNodes;//->获取所有的子节点
//循环遍历每一个子节点,把元素节点单独的存储到ary这个容器中
for (var i = 0; i < allNodes.length; i++) {
var cur = allNodes[i];
if (cur.nodeType === 1) {
//ary.push(cur);
ary[ary.length] = cur;
}
}
return ary;
}
//获取上一个元素哥哥节点
function prev(curEle) {
//兼容的话直接用,函数体中遇到return就不在执行了
if (curEle.previousElementSibling) {
return curEle.previousElementSibling;
}
//不兼容我们自己用while循环一级级的查找
var pre = curEle.previousSibling;
while (pre && pre.nodeType !== 1) {//->获取的节点存在并且不是元素节点,我们就一直循环向上找
pre = pre.previousSibling;
}
return pre;
}

Node节点的更多相关文章

  1. 层次节点——NODE节点

    1.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  2. Kubernetes移除node节点

    1.kubectl delete node {{节点名称}} 2.删除node节点上由kubelet自动生成的kubelet.kubeconfig配置文件,和ssl密钥证书kubelet.key,ku ...

  3. 二进制安装 kubernetes 1.12(四) - 部署 Node 节点组件

    在 master 上操作 vi /etc/profile export PATH=/opt/kubernetes/bin:$PATH source /etc/profile 将 kubelet-boo ...

  4. Kubernetes集群部署之五node节点部署

    Node节点是Kubernetes集群中的工作负载节点.每个node都会被master分配一些工作负载,每个node节点都运行以下关键服务进程.Kubelet :负责pod对应的容器的创建.启停等任务 ...

  5. NodePort 只能在node节点上访问,外部无法访问

    创建了一个NodePort类型的jenkins service,node port 30000,node节点ip为192.168.56.101, 在node节点上通过浏览器能正常访问http://19 ...

  6. kubernetes集群搭建(4):node节点安装

    下列所有操作需要在所有node节点上操作,并注意红色部分的修改 1.node节点不需要安装etcd来存储相关信息 yum -y install flannel kubernetes 2.修改flann ...

  7. 08-部署node节点

    部署kubernetes node节点 kubernetes node 节点包含如下组件: Flanneld: 省略,参照之前部署的文档 Docker1.12.5: 省略,参照之前部署的文档 kube ...

  8. k8s集群添加node节点(使用kubeadm搭建的集群)

    1.安装docker.kubelet.kubectl.kubeadm.socat # cat kubernets.repo[kubernetes]name=Kubernetesbaseurl=http ...

  9. Kubernetes1.91(K8s)安装部署过程(六)--node节点部署

    hi,everybody,我回来了,之前安装到flannel之后,文章一直没有更新,甚至不少小伙伴都来加qq询问是否继续更新了, 这里说明下原因,我在部署1.91node的时候的确出现了各种各样的问题 ...

随机推荐

  1. class-dump 反编译私有的库和应用

    一.下载并安装class-dump 下载class-dump-3.5.dmg  点击下载 下载完成以后双击.dmg的文件,将里面的class-dump拷贝到/usr/local/bin 设置权限chm ...

  2. Linux C语言解析并显示.bmp格式图片

    /************************* *bmp.h文件 *************************/ #ifndef __BMP_H__ #define __BMP_H__ # ...

  3. centos下彻底删除 和重装MYSQL

    1 删除Mysql      yum remove  mysql mysql-server mysql-libs mysql-server;       find / -name mysql 将找到的 ...

  4. hive

    Hive Documentation https://cwiki.apache.org/confluence/display/Hive/Home 2016-12-22  14:52:41 ANTLR  ...

  5. ASP.NET Aries JSAPI 文档说明:AR.Form、AR.Combobox

    AR.Form 文档 1:对象或属性: 名称 类型 说明 data 属性 编辑页根据主键请求回来的数据 method 属性 用于获取数据的函数指向,默认值Get objName 属性 用于拦截form ...

  6. 全球HTTPS时代已来,你跟上了吗?

    全球HTTPS时代已来,你跟上了吗? 互联网发展20多年,大家都习惯了在浏览器地址里输入HTTP格式的网址.但前两年,HTTPS逐渐取代HTTP,成为传输协议界的"新宠". ​ 早 ...

  7. 神通广大的CSS3选择器

    每个前端工程师可能每天都会写一些css,其中选择器是很主要的一部分.但是,大家可能每天写的大多是#id,.class这样的选择器,这并不稀奇,但是如果我们了解并且熟用css3为我们提供的强大并且优雅的 ...

  8. BOM,DOM,ECMAScripts三者的关系

    一:DOM 文档对象模型(DOM)是表示文档(比如HTML和XML)和访问.操作构成文档的各种元素的应用程序接口(API) DOM是HTML与JavaScript之间沟通的桥梁.   DOM下,HTM ...

  9. Electron安装

    1.安装nodejs和npm 官网下载地址:https://nodejs.org/en/download/ 安装包:下载.msi 安装完成后: nodejs.npm都会安装好,path环境变量也自动设 ...

  10. .NET中的逆变协变

    MSDN上的说法: 协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型----------(注 ...