Dom对象

<head>
    <meta charset="UTF-8">
    <title>Title</title>
     <style>
        .hide{
            display: none;
        }
    </style>
</head>
<body>
<div class="c1"id="d1">click</div>
<div class="c1"id="d2">click</div>
<script>
    var ele=document.getElementsByClassName('c1')[0];
    //文本操作
//    console.log(ele.innerHTML)//取值操作
      //console.log(ele.innerText)//取值操作
//    ele.innerText='frank'//赋值操作
//      ele.innerHTML='<a href="" >click</a>'//html标签用innerHTML
//
    //属性操作
//    var ele=document.getElementsByClassName('c1')[0];
//    ret=ele.id
//    console.log(ret)
//    console.log(ele.getAttribute('id'))
//    ele.id='hha'
//    console.log(ele)

    //class属性
    console.log(ele.className)
    ele.classList.add('hide');//增加一个类名
        ele.classList.remove("hide");//减少一个类名
</script>
</body>

 

1dom

  •  HTML  Document Object Model(文档对象模型)
  •     HTML DOM 定义了访问和操作HTML文档的标准方法
  •     HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树

 画dom树是为了展示文档中各个对象之间的关系,用于对象的导航。

2节点

节点类型

HTML 文档中的每个成分都是一个节点。

DOM 是这样规定的:
    整个文档是一个文档节点
    每个 HTML 标签是一个元素节点
    包含在 HTML 元素中的文本是文本节点
    每一个 HTML 属性是一个属性节点

 

其中:document和element是重点。

节点之间的关系:

节点树中的节点彼此拥有层级关系。
父(parent),子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

  •     在节点树中,顶端节点被称为根(root)
  •     每个节点都有父节点、除了根(它没有父节点)
  •     一个节点可拥有任意数量的子
  •     同胞是拥有相同父节点的节点

下面的图片展示了节点树的一部分,以及节点之间的关系:

访问 HTML 元素(节点),访问 HTML 元素等同于访问节点,我们能够以不同的方式来访问 HTML 元素。

节点查找:(方法一)

<div id="div1">
    <div class="div2"> i am div2</div>
    <div name="frank"> i am div</div>
    <div id="div3"> i am div</div>
    <p > hello hgahglp</p>
</div>
<script>
 

//    var div1=document.getElementById('div1')//通过定位查找id标签
//var div2=document.getElementsByClassName('div2')//通过类名来查找
//var frank1=document.getElementsByName('frank')//通过名字来查找
//var p1=document.getElementsByTagName('p')//通过标签查找
//    console.log(ele )
</script>

注意涉及到寻找元素,注意script标记的位置!

方法二:(导航节点属性)

parentElement           // 父节点标签元素

children                // 所有子标签

firstElementChild       // 第一个子标签元素

lastElementChild        // 最后一个子标签元素

nextElementSibling     // 下一个兄弟标签元素

previousElementSibling  // 上一个兄弟标签元素
var ele=document.getElementsByClassName('div2')[0].nextElementSibling;//查找下一个
console.log(ele)

绑定事件的两种方式:

<body>
#绑定事件方法一
<div onclick="alert(123)">div</div>
<div onclick="foo(this)">div</div>//this 指的是自己直接绑定不推荐使用
<script>
function foo(self) { //self 指的是形式参数-->
var ele=document.getElementsByTagName('div')[0];
ele.style.color='green'//法一
console.log(self)
self.style.color='red'//法二
}


</script>
<div class="c1">DIV2</div>
// 事件绑定方式2: 标签对象.on事件=function(){}推荐使用
<script>
var ele=document.getElementsByClassName("c1")[0];
ele.onclick=function () {
console.log(this)
this.style.fontSize='30px'
}




</script>
//点击每一行会跳出每一行的内容
<ul>
<li>11</li>
<li>22</li>
<li>33</li>
<li>444</li>
</ul>
<script>
var ele=document.getElementsByTagName('li')
for (var i=0;i<ele.length;i++){
ele[i].onclick=function () {
// this.style.color='red'
alert(this.innerText)
}
}

</script>
</body>

属性操作:

<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.hide{
display: none;
}
</style>
</head>
<body>
<div class="c1"id="d1">click</div>
<div class="c1"id="d2">click</div>
<script>
var ele=document.getElementsByClassName('c1')[0];
//文本操作
// console.log(ele.innerHTML)//取值操作
//console.log(ele.innerText)//取值操作
// ele.innerText='frank'//赋值操作
// ele.innerHTML='<a href="" >click</a>'//html标签用innerHTML
//
//属性操作
// var ele=document.getElementsByClassName('c1')[0];
// ret=ele.id
// console.log(ret)
// console.log(ele.getAttribute('id'))
// ele.id='hha'
// console.log(ele)

//class属性
console.log(ele.className)
ele.classList.add('hide');//增加一个类名
ele.classList.remove("hide");//减少一个类名
</script>
</body>

 左侧表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0px;
            padding:0px;
        }
        .left{
            width: 20%;
            height: 600px;
            float: left;
            background-color: #2459a2;

        }
        .title{
            width: 100%;
            height: 20px;
            border:1px solid red;
            text-align: center;

        }
        .title ul{
            list-style: none;

        }
        .right{
             width: 80%;
            height: 600px;
            float: left;
            background-color: #e4393c;
        }
        .hide{
            display: none;
        }
        .item{padding:10px;}
    </style>
</head>
<body>
<div class="outer">
    <div class="left">
        <div class="item">
        <div class="title" >第一章</div>
             <ul class= "conn ">
                <li>111</li>
                <li>111</li>
                <li>111</li>
                <li>111</li>
            </ul></div>
        <div class="item">
        <div class="title" >第一章</div>
             <ul class= "conn hide ">
                <li>111</li>
                <li>111</li>
                <li>111</li>
                <li>111</li>
            </ul></div>
        <div class="item">
        <div class="title" >第一章</div>
             <ul class= "conn  hide">
                <li>111</li>
                <li>111</li>
                <li>111</li>
                <li>111</li>
            </ul></div>

    </div>

    <div class="right"></div>
</div>
<script>
 var ele=document.getElementsByClassName('title');
    for (var i=0;i < ele.length;i++){
     ele[i].onclick=function () {
    this.nextElementSibling.classList.remove('hide')
         for (var j=0;j<ele.length;j++){
      if (ele[j]!==this){
          ele[j].nextElementSibling.classList.add('hide')
      }

         }

     }
    }
</script>
</body>
</html>

 

posted on 2017-09-26 18:32  黎明NB  阅读(232)  评论(0编辑  收藏  举报

导航