24 节点

文档 document
元素 element(页面中的标签都叫元素p、div、 a元素就是标签)
节点 Node页面中所有的内容都叫做节点(元素、标签、属性、文本——文字、空格、换行、回车 )

DOM节点 HTML文档
元素节点 标签
属性节点 属性
文本节点 文本内容
注释节点 注释

节点属性(可以用标签.出来,元素.出来,属性.出来,文本.出来)
节点类型 nodeType
1代表标签节点
2代表属性节点
3代表文本节点

节点名字 nodeName
标签节点——获取大写的标签名
属性节点——获取小写的属性名
文本节点——获取#text

节点的值 nodeValue
标签节点——null
属性节点——属性值
文本节点——文本内容

例:

<body>
<div id="dv">
    <span>span标签</span>
    <p>标签</p>
    <ul id="uu">
        <li>鸣人</li>
        <li>佐助</li>
        <li id="three">小樱</li>
        <li>我爱罗</li>
        <li>小李</li>
    </ul>
</div>
<script src="publick.js"></script>
<script>
    var ulObj = my$("uu");
    //ul标签的父节点    ul标签的父级元素——元素就是标签
    console.log(ulObj.parentNode); //<div></div>
    //获取父级元素
    console.log(ulObj.parentElement); //<div></div>
    //div是ul的父节点也是ul的父元素
    
    //获取div的nodeType、nodeName、nodeValue
    console.log(ulObj.parentNode.nodeType); //1代表标签节点
    console.log(ulObj.parentNode.nodeName); //DIV
    console.log(ulObj.parentNode.nodeValue); //null
    
    //追踪父标签
    console.log(ulObj.parentNode); //div
    console.log(ulObj.parentNode.parentNode); //body
    console.log(ulObj.parentNode.parentNode.parentNode); //html
    console.log(ulObj.parentNode.parentNode.parentNode.parentNode);         //document
   console.log(ulObj.parentNode.parentNode.parentNode.parentNode.parentNode); //null
   
var dvObj = document.getElementById("dv");
// 子节点,节点的范围大,包含了标签,文本,换行...
console.log(dvObj.childNodes);
// 子元素----元素就是标签
console.log(dvObj.children);
//总结:节点的范围大(回车也算文本节点,换行,空格),元素的范围小---元素就是标签
for(var i = 0; i < dvObj.childNodes.length; i++){
    /* 
    nodeType ---> 节点类型 1--标签,2--属性,3---文本
    nodeName ---> 节点名称 大写的标签--标签,小写的属性名--属性,#text--文本
    nodeValue ---> 节点值的值 标签--null 属性---属性的值,文本--文本的内容
    */
    var node = dvObj.childNodes[i];
    console.log(node.nodeType+"====="+node.nodeName+"===="+node.nodeValue);   
}
// 3.获取属性的节点
var dvObj = document.getElementById("dv");
var node = dvObj.getAttributeNode("id");//属性节点
console.log(node.nodeType+"====="+node.nodeName+"===="+node.nodeValue); 
</script>
</body>

获取节点元素的方式

var ulObj = document.getElementById("uu");
//父级节点
console.log(ulObj.parentNode);
//父级元素
console.log(ulObj.parentElement);
//子级节点
console.log(ulObj.childNodes); //11 换行属于文本
//子级元素——子标签
console.log(ulObj.children); //5
扩展;
//第一个子节点
console.log(ulObj.firstChild);
//第一个子元素
console.log(ulObj.firstElementChild); //<li></li>
//最后一个子节点
console.log(ulObj.lastChild);
//最后一个子元素
console.log(ulObj.lastElementChild);
//某个元素的前一个兄弟节点
console.log(my$("three").previousSibling);
//某元素的前一个兄弟元素
console.log(my$("three").previousElementSibling); //<li></li>
//某个元素的后一个兄弟节点
console.log(my$("three").nextSibling);
//某个元素的后一个兄弟元素
console.log(my$("three").nextElementSibling);

注:从第一个子节点开始,在IE8等低版本浏览器中叫做元素,第一个子元素,IE8浏览器不支持

需求:点击按钮实现变色

 <style>
    div{
        width: 300px;
        height: 500px;
        border:1px solid #000;
    }
</style>
<body>
<input type="button" value="改变p标签的颜色" id="btn">
<div id="dv">
   <span>我是span奥特曼</span>
   <p>我是段落P迪迦</p>
   <span>我是span奥特曼</span>
   <p>我是段落P迪迦</p>
   <span>我是span奥特曼</span>
   <p>我是段落P迪迦</p>
   <span>我是span奥特曼</span>
   <p>我是段落P迪迦</p>
   <span>我是span奥特曼</span>
   <p>我是段落P迪迦</p>
   <a href="http://www.baidu.com">百度</a>
   </div>
<script src="publick.js"></script>
<script>
my$("btn").onclick = function(){
//获取div
var dvObj = my$("dv");
//获取div里的所有子节点
var nodes = dvObj.childNodes; //伪数组
//遍历
for(var i = 0; i < nodes.length; i++){
    //判断
    if(nodes[i].nodeType == 1 && nodes[i].nodeName == "P"){
        nodes[i].style.backgroundColor = "pink";
    }
  }
} 
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值