个人公众号

JavaScript(demo1)

事件

<!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/b.jpg';
          flag = 2;
       } else if (flag === 2) {
          mv.src = 'images/a.jpg';
          flag = 1;
       }
     }


   </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>

点击按钮隐藏显示div

<!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>

    <link rel="stylesheet" href="">
    <script src=""> </script>
</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 获取div中的所有a标签
    // 2 给所有a标签注册事件
    // 3 取消a标签的跳转功能
    // 4 遍历的时候为何不能使用link.href 获取到数据
    // 5 事件处理函数中的this所指向的位置

    var imagegallery = document.getElementById('imagegallery');
    var links = imagegallery.getElementsByTagName('a');
    // 遍历所有的a,给a注册单击事件
    for (var i = 0; i < links.length; i++) {
        var link = links[i];
        link.onclick = function () {
            var img = document.getElementById("image");
            var des = document.getElementById("des");
            img.src = this.href;
            des.innerText = this.title;
            return false;
        }
    }
    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>

innerHTML 和 TextContext

<!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>

兼容性处理

<!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>

表单元素属性

<!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 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>
posted @ 2019-11-14 10:21  张_俊_杰  阅读(239)  评论(0)    收藏  举报