WebAPI01

获取页面元素

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div>hello</div>
  <div id="main">world</div>
  <div>heima</div>
  <p id='p'>test</p>
  <script>
    // document  文档对象
    // get 获取 Element  元素  By  根据  Id  标示
    // 
    // 如果页面上没有对应的id,此时返回null
    // 
    // 
    // div -> HTMLDivElement
    // p -> HTMLParagraphElement
    var main = document.getElementById('p');
    // console.log(main);
    // console.log('abc');
    // 
    // 打印对象
    console.dir(main);
    // 
    // 对象是有类型的
    // var arr = new Array();
    // console.dir(arr);
  </script>
</body>
</html>

获取页面元素

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script>
    var divs = document.getElementsByTagName('div');
    console.log(divs.length);
  </script>
</head>
<body>
  <div>hello</div>
  <div id="main">world</div>
  <div>heima</div>
  <p>heihei</p>
  <script>
     // console.log(divs.length);
    // HTMLCollection  集合   伪数组
    // var divs = document.getElementsByTagName('div');
    // console.log(divs);
    // for (var i = 0; i < divs.length; i++) {
    //   // console.log(divs[i]);
    //   // divs 中的每一个元素是什么类型?
    //   // divs 中的每一个元素都是对象  都是 HTMLDivElement
    // }
    // 注意:getElementsByTagName() 获取到的集合是动态集合
    // getElementsByTagName()
    // 
    // var spans = document.getElementsByTagName('span');
    // console.log(spans);
    // 
  </script>
</body>
</html>

获取页面元素

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="container">
    <div>11111</div>
    <div>22222</div>
    <p>ppppp</p>
    <span>span</span>
  </div>
  <div>hello</div>
  <div id="main">world</div>
  <div>heima</div>
  <p>heihei</p>
  <span>111</span>
  <script>
    var container = document.getElementById('container');
    var divs = container.getElementsByTagName('div');
    console.log(divs);
  </script>
</body>
</html>

获取页面元素

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id='main'></div>
  <div name='main'></div>
  <div class='a'></div>
  <div class='a'></div>
  <p class='a'></p>
  <script>
    // 根据标签的name属性获取元素
    // document.getElementsByName()
    // var divs = document.getElementsByName('main');
    // console.log(divs);
    // 
    // 
    // 根据标签的class属性获取元素
    // 浏览器兼容性  IE9以后才支持的
    // document.getElementsByClassName();
    // 
    // 
    // query  查询
    // Selector  选择器
    // 根据选择器来查找元素
    // document.querySelector();
    // var main = document.querySelector('#main');
    // console.log(main);
    // 
    // 
    // 只能获取到一个元素
    // var element = document.querySelector('.a');
    // console.log(element);
    // 
    // 
    // 
    // var elements = document.querySelectorAll('.a');
    // console.log(elements);
    // 
    // 
    // 都是根据选择器来获取元素
    // 浏览器兼容性问题   IE8以后才执行
    // 
    // 只会返回第一个匹配到的元素
    // querySelector()
    // 返回所有匹配到的元素
    // querySelectorAll()
  </script>
</body>
</html>

事件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <input type="button" id="btn" value="点我">
  <div id="main">1111</div>
  <script>
    // 事件:当什么时候做什么事情
    //      触发-响应
    //1 获取按钮
    var btn = document.getElementById('btn');
    //2 给按钮注册事件
    //事件名称  click
    //事件源:谁触发的事件
    //事件处理函数:
    btn.onclick = function () {
      alert('别点我,疼');
    }
    // 给div注册事件
    var div = document.getElementById('main');
    div.onclick = function () {
      alert('我是div');
    }
  </script>
</body>
</html>

点击按钮切换图片

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
   <input type="button" value="点我" id="btn">
   <br>
   <img src="images/a.jpg" id="mv" alt="" width="400" height="300">
   <script>
     // 1 获取元素
     var btn = document.getElementById('btn');
     var mv = document.getElementById('mv');
     // 2 给按钮注册事件
     var flag = 1;  // 当flag的值是1 的时候 对应a.jpg   当flag的值是2的时候 对应 b.jpg
     btn.onclick = function () {
       // 3 切换图片
       if (flag === 1) {
          mv.src = 'images/a.jpg';
          flag = 2;
       } else if (flag === 2) {
          mv.src = 'images/b.jpg';
          flag = 1;
       }
     }
   </script>
</body>
</html>

设置文本框的属性

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input id="btn" type="button" value="获取文本框的值">
  <script>
    // 1 当页面加载完毕,给所有的文本框赋值
    var inputs = document.getElementsByTagName('input');
    for (var i = 0; i < inputs.length; i++) {
      var input = inputs[i];
      // 根据type属性 判断是否是文本框
      if (input.type === 'text') {
        input.value = i;
      }
    }
    // 2 当点击按钮的时候,获取所有文本框的值,并使用 | 分割输出
    // 0|1|2
    var btn = document.getElementById('btn');
    btn.onclick = function () {
      var array = [];
      for (var i = 0; i < inputs.length; i++) {
        var input = inputs[i];
        // 判断是否是文本框
        if (input.type === 'text') {
           array.push(input.value);
        }
      }
      console.log(array.join('|'));
    }
  </script>
</body>
</html>

表单元素的属性

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <input type="button" value="按钮" id="btn">
  <input type="button" value="设置文本框的值" id="btn1">
  <br>
  <input type="text"  id="txt" value='123'>
  <script>
    // 获取元素
    var btn = document.getElementById('btn');
    // 注册事件
    btn.onclick = function () {
      var txt = document.getElementById('txt');
      console.log(txt.value);
      console.log(txt.type);
      // 当html中的标签的属性,只有一个值的时候
      // DOM中对应的元素的属性值是布尔类型
      console.log(txt.disabled);
      txt.disabled = true;
    }
    var btn1 = document.getElementById('btn1');
    btn1.onclick = function () {
      var txt = document.getElementById('txt');
      // 设置文本框中的内容
      txt.value = 'hello world';
    }
  </script>
</body>
</html>

设置文本框的值

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input type="text"><br>
  <input id="btn" type="button" value="获取文本框的值">
  <script>
    // 1 当页面加载完毕,给所有的文本框赋值
    var inputs = document.getElementsByTagName('input');
    for (var i = 0; i < inputs.length; i++) {
      var input = inputs[i];
      // 根据type属性 判断是否是文本框
      if (input.type === 'text') {
        input.value = i;
      }
    }
    // 2 当点击按钮的时候,获取所有文本框的值,并使用 | 分割输出
    // 0|1|2
    var btn = document.getElementById('btn');
    btn.onclick = function () {
      var s = '';
      for (var i = 0; i < inputs.length; i++) {
        var input = inputs[i];
        // 判断是否是文本框
        if (input.type === 'text') {
          s += input.value + '|';
        }
      }
      // 把最后一个| 去掉
      s = s.substr(0, s.length - 1);
      console.log(s);
    }
  </script>
</body>
</html>

非表单元素

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <a id="link" href="http://www.baidu.com" title="我是百度">百度</a>
  <img id="mv" src="images/a.jpg" alt="美女">
  <script>
     var link = document.getElementById('link');
     var mv = document.getElementById('mv');
     // 获取DOM对象的属性值
     console.log(link.id);
     console.log(link.href);
     console.log(link.title);
     console.log(mv.id);
     console.log(mv.src);
     console.log(mv.alt);
     // 设置DOM对象的属性
     link.href = 'http://www.google.com';
     link.title = 'google';
  </script>
</body>
</html>

点击按钮隐藏

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    #box {
      background-color: red;
      width: 200px;
      height: 200px;
    }
    .show {
      display: block;
    }
    .hidden {
      display: none;
    }
  </style>
</head>
<body>
   <input type="button" id="btn" value="隐藏">
   <br>
   <div id="box" >
   </div>
  <script>
    //1 获取元素
    var btn = document.getElementById('btn');
    //2 给按钮注册事件
    btn.onclick = function () {
      //3 控制div的显示隐藏
      var box = document.getElementById('box');
      // 为什么DOM对象的对应的标签的class属性的名字叫做className ,应为class 在js中是关键字
      // 关键字不可以作为变量或者属性的名字
      box.className = 'hidden';
      // 如何设置按钮对应的元素的属性
      // btn.value = '显示';
      this.value = '显示';
    }
    // this的几种情况
    // 1 普通函数中的this  ->  window
    // 2 构造函数中的this  ->  是当前构造函数创建的对象
    // 3 方法中的this      ->  方法所属的对象
    // 4 事件处理函数中的this   ->  事件源,谁调用的该事件this就指向谁
    //4 改变按钮中的文字
  </script>
</body>
</html>

点击按钮隐藏

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    #box {
      background-color: red;
      width: 200px;
      height: 200px;
    }
    .show {
      display: block;
    }
    .hidden {
      display: none;
    }
  </style>
</head>
<body>
   <input type="button" id="btn" value="隐藏">
   <br>
   <div id="box" >
   </div>
  <script>
    //1 获取元素
    var btn = document.getElementById('btn');
    //2 给按钮注册事件
    // isShow记录了box的状态,true 显示 ,false 隐藏
    var isShow = true;
    btn.onclick = function () {
      //3 控制div的显示隐藏
      var box = document.getElementById('box');
      if (isShow) {
        // 为什么DOM对象的对应的标签的class属性的名字叫做className ,应为class 在js中是关键字
        // 关键字不可以作为变量或者属性的名字
        box.className = 'hidden';
        // 如何设置按钮对应的元素的属性
        // btn.value = '显示';
        this.value = '显示';
        isShow = false;
      } else {
        box.className = 'show';
        this.value = '隐藏';
        isShow = true;
      }
    }
    //4 改变按钮中的文字
  </script>
</body>
</html>

a标签的点击事件

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
   <a id="link" href="http://www.baidu.com">百度</a>
   <script>
     var link = document.getElementById('link');
     link.onclick = function () {
       alert('点击我了');
       // 取消a标签的默认行为(跳转到href)
       return false;
     }
   </script>
</body>
</html>

美女相册的实现

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        body {
            font-family: "Helvetica","Arial",serif;
            color: #333;
            background-color: #ccc;
            margin: 1em 10%;
        }
        h1 {
            color: #333;
            background-color: transparent;
        }
        a {
            color: #c60;
            background-color: transparent;
            font-weight: bold;
            text-decoration: none;
        }
        ul {
            padding: 0;
        }
        li {
            float: left;
            padding: 1em;
            list-style: none;
        }
        #imagegallery {
        }
        #imagegallery a {
            margin: 0px 20px 20px 0px;
            padding: 0px;
            display: inline;
        }
        #imagegallery a img {
            border: 0;
        }
    </style>
</head>
<body>
<h2>
    美女画廊
</h2>
<div id="imagegallery">
    <a href="images/1.jpg" title="美女A">
        <img src="images/1-small.jpg" width="100px" alt="美女1" />
    </a>
    <a href="images/2.jpg" title="美女B">
        <img src="images/2-small.jpg" width="100px" alt="美女2" />
    </a>
    <a href="images/3.jpg" title="美女C">
        <img src="images/3-small.jpg" width="100px" alt="美女3" />
    </a>
    <a href="images/4.jpg" title="美女D">
        <img src="images/4-small.jpg" width="100px" alt="美女4" />
    </a>
</div>
<div style="clear:both"></div>
<img id="image" src="images/placeholder.png" alt="" width="450px" />
<p id="des">选择一个图片</p>
    <script>
        //1 获取到所有的a标签
        var imagegallery = document.getElementById('imagegallery');
        var links = imagegallery.getElementsByTagName('a');
        //2 给所有的a标签注册事件
        for (var i = 0; i < links.length; i++) {
            // 所有的a标签对应的元素
            var link = links[i];
            // 注册事件
            link.onclick = function () {
                //4 切换图片
                // 获取占位的大`的img标签
                var image = document.getElementById('image');
                // 把img标签的src属性 设置为当前点击的a标签的href
                image.src = this.href;                
                //5 设置p标签的内容
                var des = document.getElementById('des');
                // 当前点击的a标签的title属性
                // this.title
                // 如何设置p标签中显示的内容
                // console.dir(des);
                des.innerText = this.title;
                //3 取消a的默认行为
                return false;
            }
        }
        // 当循环结束之后 link是谁??
        // link 是最后一个a标签
        // console.log(link);        
    </script>
</body>
</html>

innerHTML和innerText

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="box">
    我一个div
    <span>这是一个span</span>
  </div>
  <b>123</b> &quot;
  &lt;b&gt;
  1231231     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abadf
  <script>
    var box = document.getElementById('box');
    // box.id
    // console.dir(box);
    // // innerHTML  innerText 
    // // 获取开始标签和结束标签之间的内容
    // // 
    // // innerHTML  获取内容的时候,如果内容中有标签,会把标签页获取到
    // // 原封不动把内容获取到
    // console.log(box.innerHTML);
    // // innerText  获取内容的时候,如果内容中有标签,会把标签过滤掉
    // // innerText 会把前后的换行和空白都去掉
    // console.log(box.innerText);
    // 设置标签之间的内容
    // box.innerHTML = '';  // 清空内容
    // 通过innerHTML 设置内容,如果内容中带标签,会以HTML的方式来解析
    // box.innerHTML = '<b>可爱</b>程序猿';
    // 
    // 通过innerText 设置内容,如果内容中带标签,在网页上会把标签显示出来
    box.innerText = '<b>可爱</b>程序猿';
  </script>
</body>
</html>

innerText和textContent

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="box">
    我是一个box
    <b>hello</b>
  </div>
  <script>
    // innerText  最早出现在IE浏览器中
    // 
    // 浏览器兼容问题
    // 
    // 老版本的firefox浏览器不支持innerText
    // 2016的时候 已经把innerText 在DOM中规定为正式的标准属性
    // 
    // textContent
    var box = document.getElementById('box');
    // 都会把标签过滤
    // 前后的空白和一些换行去掉
    console.log(box.innerText);
    // 原封不动的把内容输出
    console.log(box.textContent);
  </script>
</body>
</html>

兼容处理

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="box">
    hello
  </div>
  <script>
    // // 如何知道。浏览器是否支持元素的某个属性
    // var box = document.getElementById('box');
    // // 当属性不存在的时候返回的是  undefined
    // console.log(typeof box.a);
    // // 当属性存在的时候返回的是 该属性的类型
    // console.log(typeof box.id);
    var box = document.getElementById('box');
    console.log(getInnerText(box));
    // 处理innerText的兼容性问题
    function getInnerText(element) {
      // 判断当前浏览器 是否支持元素的innerText属性,支持innerText 使用element.innerText获取内容
      // 如果不支持innerText属性,使用element.textContent获取内容
      if (typeof element.innerText === 'string') {
        return element.innerText;
      } else {
        return element.textContent;
      }
    }
    // box.innerHTML = 'hello world';
    // 设置内容的时候
    // innerText(textContent)       当设置不含标签的内容的时候应该使用innerText,效率高
    // innerHTML 
  </script>
</body>
</html>
发布了188 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44797965/article/details/104374962