zoukankan      html  css  js  c++  java
  • 14-1 jquery的dom操作和事件对象

    一 jquery的操作有,插入,修改,删除,克隆。具体见下方代码实例:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>文档操作</title>
      6 </head>
      7 <style>
      8     div {
      9         background-color: green;
     10         height: 200px;
     11 
     12     }
     13 
     14     .active {
     15         font-size: 20px;
     16     }
     17 </style>
     18 <body>
     19 <ul>
     20 
     21 </ul>
     22 <p class="app">风调雨顺</p>
     23 
     24 <button>
     25     <!--<input type="submit" value="克隆按钮">-->
     26     <input type="submit" value="克隆">
     27 </button>
     28 
     29 <!--导入js-->
     30 <script src="jquery-3.3.1.min.js"></script>
     31 <!--插入操作  -->
     32 <!--语法:父元素.append(子元素)-->
     33 <script>
     34 
     35 
     36     //jquery操作文档的方式,注意到导入jquery包
     37     var oli = document.createElement('li');
     38     oli.innerHTML = '哈哈哈';//字符串
     39     $("ul").append('<li>1233</li>');//js对象
     40     $('ul').append(oli);
     41     $('ul').append($('.app'));//jquery对象
     42     // 注意如果追加的是jquery对象那么这些元素将从原位置上消失。简言之,就是一个移动操作。app这个p标签本来是在外面的,追加
     43     // 之后就移动到了ul标签里面
     44 </script>
     45 
     46 <!--知识点2,-->
     47 <!--子元素.appendTo(父元素)-->
     48 <script>
     49     $('<li>天王盖地虎</li>').appendTo($('ul')).addClass('active')//追加子元素li到父元素ul里面并且添加class=active
     50 </script>
     51 
     52 <!--知识点3;语法:父元素.prepend(子元素) 解释:前置添加, 添加到父元素的第一个位置-->
     53 <script>
     54     $('ul').prepend('<li>我是第一个</li>')
     55 </script>
     56 
     57 <!--知识点4 语法:父元素.prependTo(子元素)解释后置添加, 添加到父元素的最后一个位置-->
     58 <!--<script>-->
     59 <!--$('<li>我是最后一个</li>').prependTo($('ul'))-->
     60 
     61 <!--</script>-->
     62 <!--知识点5语法:父元素.after(子元素); 子元素.inserAfter(父元素);解释:在匹配的元素之后插入内容 -->
     63 
     64 <script>
     65     $('ul').after('<h4>我是一个h4标题</h4>');
     66     $('<h5>我是一个h5标题</h5>').insertAfter('ul');
     67 </script>
     68 <!--知识点6 语法:父元素.before(子元素);子元素.inserBefore(父元素);解释:在匹配的元素之前插入内容 -->
     69 </body>
     70 <script>
     71     $('ul').before('<h3>我是一个h3标题</h3>')
     72 $('<h2>我是一个h2标题</h2>').insertBefore('ul')
     73 </script>
     74 <!--二 克隆操作-------------------------------------------------------------------------语法:$(选择器).clone();-->
     75 <script>
     76     $('button').click(function() {
     77 
     78   // 1.clone():克隆匹配的DOM元素
     79  // 2.clone(true):元素以及其所有的事件处理并且选中这些克隆的副本(简言之,副本具有与真身一样的事件处理能力)就是克隆之后的按钮也具有克隆的功能
     80   $(this).clone(true).insertAfter(this);
     81 })
     82 </script>
     83 
     84 <!--&lt;###############;三修改操作-######################################################################-->
     85 <!--语法$(selector).replaceWith(content); 解释:将所有匹配的元素替换成指定的string、js对象、jquery对象。-->
     86 <script>
     87     $('h5').replaceWith('<a href="#">hello world</a>');//将所有的h5标题替换为a标签
     88     $('h2').replaceWith($('.app'));//将所有h2标题标签替换成class为app的dom元素,自身所在的位置也会消失
     89     $('li').replaceWith($('h3'))
     90 </script>
     91 <!--知识点2 replaceaAll 替换所有-->
     92 <script>
     93     $('<p>哈哈哈</p>').replaceAll('h4');//将所有的h4标签替换成p标签
     94 </script>
     95 <!--###########################四删除操作################################################-->
     96 <!--知识点1 语法$(selector).remove(); 解释:删除节点后,事件也会删除(简言之,删除了整个标签)-->
     97 <script>
     98     // $("button").remove();
     99 
    100 </script>
    101 <!--知识点2 语法:$(selector).detach();解释:删除原有的节点后,事件会保留-->
    102 <script>
    103      var $btn = $('button').detach();
    104     //此时按钮能追加到ul中
    105      $('ul').append($btn)
    106 
    107 </script>
    108 <!--知识点3  语法:$(selector).empty(); 解释:清空选中元素中的所有后代节点-->
    109 <script>
    110     $('ul').empty()
    111 </script>
    112 
    113 </html>
    View Code

     二 jquery事件对象

    1 解释:
    2 
    3 Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
    4 
    5 1  什么时候会产生Event 对象呢? 
    6          例如: 当用户单击某个元素的时候,我们给这个元素注册的事件就会触发,该事件的本质就是一个函数,而该函数的形参接收一个event对象
    7 
    8  2.事件通常与函数结合使用,函数不会在事件发生前被执行!

    常用的是这三个:

    target 返回触发此事件的元素(事件的目标节点)。
    preventDefault() 通知浏览器不要执行与事件关联的默认动作。
    stopPropagation() 不再派发事件。

    例子:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <form action="">
     9 
    10 </form>
    11 <a href="http://www.baidu.com" title="">百度</a>
    12 <script src="jquery-3.3.1.min.js"></script>
    13 <script>
    14     $(function () {
    15         formDom();
    16 
    17         function formDom(argument) {
    18             $('form').append(`
    19                 <label>用户名</label>
    20                 <input type="text" id='user'>
    21                 <input type="submit">`);
    22         }
    23 
    24         // 点击 type='submit'的按钮 会触发 form表单的submit事件
    25         $('form').submit(function (event) {
    26             // alert(event);
    27 
    28             //  阻止from表单的默认行为
    29             event.preventDefault();
    30             console.log(event)
    31         });
    32 
    33 
    34         // 实时监听input输入框内的value 通过oninput事件
    35         $('#user')[0].oninput = function (event) {
    36             console.log(event.target.value);  //获取最后一个值
    37         };
    38         //阻止a标签的默认行为
    39         $('a').click(function (event) {
    40             event.preventDefault();//阻止默认事件代表点击之后不跳转
    41             // console.log(event);
    42             event.stopPropagation();//阻止a标签冒泡 就是当a标签点击完成之后,不再往body,html,document下面关联
    43             // //下面这三个返回的内容是一样的,当结合冒泡使用的时候  event.target就是点击的当前的对象(内层的标签) / currentTarget指的是当前的标签
    44 
    45             // console.log(event.target);
    46             // console.log(event.currentTarget);
    47             // console.log(this);
    48             console.log('a标签点击了')
    49         });
    50     })
    51 </script>
    52 </body>
    53 </html>

  • 相关阅读:
    每日一水 POJ8道水题
    编译和使用 MySQL C++ Connector
    j2ee model1模型完成分页逻辑的实现 详解!
    DB查询分析器访问EXCEL时,要在表名前后加上中括弧或双引号
    指向结构体变量的指针
    EOSS V3.0 企业运营支撑系统(基于RBAC原理的权限管理)
    MybatisGen1.0 Mybatis JavaBean Mapper生成工具
    The table name must be enclosed in double quotation marks or sqare bracket while accessing EXCEL by
    资源-Android:Android
    软件-开发软件:Android Studio
  • 原文地址:https://www.cnblogs.com/huningfei/p/9366015.html
Copyright © 2011-2022 走看看