DOM访问关系(父节点 子节点)
li.parentNode.style.background="green"
// 兼容ie678
box3.previousSibling.style.background="yellow"
box3.nextSibling.style.background="blue" //获取的是文本节点和4个换行
console.log(box3.nextSibling)
//兄弟节点 ie678不兼容
box3.previousElementSibling.style.background="yellow";//前一个节点元素
box3.nextElementSibling.style.background="blue"//后一个节点元素

//兼容性写法
var pre=box3.previousElementSibling || box3.previousSibling;
var nex=box3.nextElementSibling || box3.nextSibling;
pre.style.background="yellow";
nex.style.background="blue"
//单个子节点 调用者是父节点
//firstChild:IE678中指最后一个子元素节点(标签)
//firstElementChild:在火狐谷歌IE9都指的最后一个子元素节点
console.log(box2.parentNode.lastElementChild)

var chi=box3.parentNode.children;
for(var i=; i<chi.length; i++){
chi[i].style.background="black"
}
var box3=document.getElementById("box3");
var arr=box3.parentNode.childNodes;
//console.log(arr)
for(var i=; i<arr.length; i++){
if(arr[i].nodeType===){
arr[i].style.background="gold"
console.log(arr[i])
}
}

var box3=document.getElementById("box3");
var nede=box3.parentNode.children[];//索引值
console.log(nede)
如果节点是属性节点,则 nodeType 属性将返回 2。
<div id="box"></div>
var box=document.getElementById("box")
var box1=box.getAttributeNode("id")
console.log(box1.nodeType)

b) nodeName:节点的名字
<div id="box"></div>
var box=document.getElementById("box")
var box1=box.getAttributeNode("id")
console.log(box.nodeName)
console.log(box1.nodeName)

c)nodeValue节点的值
<div id="box"></div>
var box=document.getElementById("box")
var box1=box.getAttributeNode("id")
console.log(box.nodeValue)
console.log(box1.nodeValue)
案例
//用nodeType写出各行变色
var ul=document.getElementsByTagName("ul")[];
var arr1=ul.childNodes
console.log(ul.childNodes)
//把元素放在数组中
var arr2=[]
for(var i=; i<arr1.length; i++){ if(arr1[i].nodeType ===){
arr2.push(arr1[i])
}
}
for(var i=; i<arr2.length; i++){
if(i%===){
arr2[i].style.background="red"
}
}

top案例
window.onload=function(){
//封装函数,用到就调用
var box=document.getElementsByClassName("box");
//调用函数
/* fu(box[0]);
fu(box[1]);*/
//多个同样的板块用到,for循环调用
for(var i=; i<box.length; i++){
fu(box[i])
};
function fu(ele){ //外面的box
var liArr=ele.getElementsByTagName("li");
var spanArr=ele.getElementsByTagName("span");
//绑定事件 为一每一个li绑定鼠标以上事件(for循环)
for(var i=; i<liArr.length; i++){
//每次循环绑定一个属性,属性值是该盒子的索引值
liArr[i].setAttribute("index",i);
liArr[i].onmouseover=function(){
//思路:1点亮盒子,2利用索引值显示盒子 (排他思想)
//排他思想是和for循环连用
for(var j=; j<liArr.length; j++){
liArr[j].removeAttribute("class");
spanArr[j].removeAttribute("class");
}
this.setAttribute("class","current");
spanArr[this.getAttribute("index")].setAttribute("class","hide")
}
}
}
}

DOM访问关系(父节点 子节点)的更多相关文章
- js jquery 获取元素(父节点,子节点,兄弟节点),元素筛选
转载:https://www.cnblogs.com/ooo0/p/6278102.html js jquery 获取元素(父节点,子节点,兄弟节点) 一,js 获取元素(父节点,子节点,兄弟节点) ...
- jquery 获取元素(父节点,子节点,兄弟节点),元素筛选
一, js 获取元素(父节点,子节点,兄弟节点) var test = document.getElementById("test"); var parent = test.p ...
- js|jq获取兄弟节点,父节点,子节点
08.19自我总结 js|jq获取兄弟节点,父节点,子节点 一.js var parent = test.parentNode; // 父节点 var chils = test.childNodes; ...
- jquery 获取元素(父节点,子节点,兄弟节点)
费话不多说,直接上代码jquery 获取元素 $("#test1").parent(); // 父节点 $("#test1").parents(); // 全部 ...
- DOM操作插入新的子节点
appendChid.insertBefore首先这两个方法都是添加子节点. append(追加),appendChid:给父节点的子节点末尾添加子节点. insertBefore(newNode, ...
- [extjs] ExtJS4 treepanel 子节点选中父节点自动选中,选中父节点 子节点自动全部选中
ExtJS4 treepanel 主要添加viewConfig重的代码: xtype:'treepanel', store: menuStore, id:'menuTreePanel', viewCo ...
- EasyUI:combotree(树形下拉框)复选框选中父节点(子节点的状态也全部选中)输入框中只显示父节点的文本值
参考: https://blog.csdn.net/weixin_43236850/article/details/100320564
- DOM基础之“寻找”子节点
今天学习了JS中的DOM的内容,虽然小菜的理解不深,但希望能够记录下来,慢慢一点一点的进步,有更深的理解了,再回来补充. 首先,关于DOM的概念: 1.概念:DOM = document(文档)Obj ...
- (Elementui) el-tree 中英文过滤以及搜索到父子显示子节点,搜索到子节点显示父节点(filter-node-method)
案例下载:https://gitee.com/tudoumlp/just1.git (vue-ele-demo) 在项目中,会遇到树节点的搜索,中文和英文搜索,以及搜索到父节点匹配的时候同步显示该 ...
随机推荐
- ETL测试或数据仓库测试入门
概述 在我们学习ETL测试之前,先了解下business intelligence(即BI)和数据仓库. 什么是BI? BI(Business Intelligence)即商务智能,它是一套完整的解决 ...
- Google谷歌总部员工家庭活动
每年Google总部都会有针对家庭的两个大活动,其中一个就是万圣节.专门针对员工孩子的.#2019Googleween 今年的Googleween分几个场地,所以每个场地很小.她爸爸只带她去了一个.我 ...
- O054、Attach Volume 操作(Part II)
参考https://www.cnblogs.com/CloudMan6/p/5631328.html 计算节点作为iSCSI initiator 访问存储节点 iSCSI Target 上的v ...
- 美国cst时间和夏令时
美国6 PM CST相当于北京时间几点? 换算北京时间是:8:00,上午8点,日期是第二天.(换算公式:18点+14小时=第二天8点) 6 PM CST:6:00 PM Central Standar ...
- 输入列号得到excel对应的字母列
zexcel_cell_column 类型是INT4 FUNCTION ZGET_EXCEL_COL. *"----------------------------------------- ...
- easyui-datagrid 编辑模式详解——combobox
用于列表显示号了,需要改动某一列的值,而且根据每一行的数据去加载data数据,放在这个列中供别人选择 //-------------------- 代码可变区//---------- 数据定义区var ...
- shell脚本视频学习1
一.知识点:变量,参数传递 练习1:使用shell脚本,输出当前所在的目录 练习2:计算/etc目录下有多少个文件,用shell脚本实现 ls -l--->数一下, ls -l|wc -l ( ...
- JavaJDBC【三、增删改查】
获取数据库连接后,可进行增删改查操作 语句生成: Statement s = con.createStatement(sql); //生成语句 PreparedStatement ps = (Prep ...
- LVS (Linux虚拟服务器)-不同的负载均衡方法
随着Internet用户的增长,基于Web的公司处理的通信量急剧增加.有各种解决方案来应对这种不断增长的流量. 一种解决方案是垂直扩展服务器(即:简单地向服务器添加更多的CPU和内存资源.)当然在一定 ...
- 【转】vm ubuntu14.04 建立共享文件夹
第一步:启动Ubuntu 14.04(其他版本的Ubuntu操作差不多) 1. 在VMware虚拟机界面,点VM->Install VMware Tools.之后,显示如下图: ...