zoukankan      html  css  js  c++  java
  • webapi中对节点的操作及案列

    1.查找节点:

    孩子节点:children 所有的子元素

    firstElementChild 第一个子元素

    lastElementChild 最后一个子元素

    firstChild  第一个子节点

    lastChild最后一个节点

    实际中一般不会用系欸但,主要是对元素进行操作

    兄弟节点:  previousElementSibling  上一个兄弟元素

                     nextElementSibling   下一个兄弟元素

    父节点:parentNode

    2.添加节点

    parent.appendChild() 往父节点内容的最后面添加

    parent.insertBefore(a,y)  往任意指定位置y的前面添加a

    两个参数必须写,当第二个参数为null,undefined 时,效果和appendChild一样

    如果对于页面中已有的元素,就是剪切的效果

    3.克隆节点

    cloneNode(deep)

    deep是布尔类型,为true,表示深拷贝,标签+内容,如果有id值,需要重新设置,页面中id值是唯一的

    如果值为false,表示浅拷贝,只复制标签

    注意:拷贝出来的和原来之间的修改是互不影响的

    4.删除节点

    parent.removeChild() 父元素调用

    5.创建节点

    1.document.write() 只能往页面中写,页面加载产生文档流存在覆盖问题

    2.innerHTML  可以识别标签,慎用,也会存在覆盖问题

    3.document.createElement(tagName)

    (1)创建出来的元素是存储在内存中

     (2) 需要手动添加到页面中

     (3) 参数:字符串类型的标签名

    事件-----概念:触发-----响应的机制

    三要素:事件源,事件名称,事件处理程序

    注册事件:事件源 on + 事件名称 = function() {...}

        事件触发了才会执行函数

        函数不需要带哦用,浏览器帮我们调用执行

    表单属性-------常用的有:type name value checked selected disabled

    布尔类型的有: checked  selected   disabled

    具体说明: 在标签中,只要有这个属性,就能起到作用,dom对象属性值是布尔类型(true,false)

    例题:实现全选

    页面结构:

    <!DOCTYPE html>
    <html>
    
    <head lang="en">
      <meta charset="UTF-8">
      <title></title>
      <style>
        * {
          padding: 0;
          margin: 0;
        }
    
        .wrap {
          width: 300px;
          margin: 100px auto 0;
        }
    
        table {
          border-collapse: collapse;
          border-spacing: 0;
          border: 1px solid #c0c0c0;
          width: 300px;
        }
    
        th,
        td {
          border: 1px solid #d0d0d0;
          color: #404060;
          padding: 10px;
        }
    
        th {
          background-color: #09c;
          font: bold 16px "微软雅黑";
          color: #fff;
        }
    
        td {
          font: 14px "微软雅黑";
        }
    
        tbody tr {
          background-color: #f0f0f0;
          text-align: center;
        }
    
        tbody tr:hover {
          cursor: pointer;
          background-color: #fafafa;
        }
      </style>
    </head>
    
    <body>
      <div class="wrap">
        <table>
          <thead>
            <tr>
              <th>
                <input type="checkbox" id="j_cbAll" />
              </th>
              <th>菜名</th>
              <th>饭店</th>
            </tr>
          </thead>
          <tbody id="j_tb">
            <tr>
              <td>
                <input type="checkbox" />
              </td>
              <td>红烧肉</td>
              <td>田老师</td>
            </tr>
            <tr>
              <td>
                <input type="checkbox" />
              </td>
              <td>西红柿鸡蛋</td>
              <td>田老师</td>
            </tr>
            <tr>
              <td>
                <input type="checkbox" />
              </td>
              <td>红烧狮子头</td>
              <td>田老师</td>
            </tr>
            <tr>
              <td>
                <input type="checkbox" />
              </td>
              <td>日式肥牛</td>
              <td>田老师</td>
            </tr>
          </tbody>
        </table>
      </div>
    </body>
    
    </html>

    js的代码

     <script>
    
        var all = document.getElementById('j_cbAll');
        var tbody = document.getElementById('j_tb');
        var inps = tbody.getElementsByTagName('input');
        //首先给头部的全选添加点击事件,让下面所有的input的checked属性和全选一致
        all.onclick = function () {
          var checked = this.checked;
          for (var i = 0; i < inps.length; i++) {
            inps[i].checked = checked;
          }
        };
    
        //给下面的每一个input添加点击事件
        for (var i = 0; i < inps.length; i++) {
          inps[i].onclick = function () {
            //假设成立法
            //假设所有的都是被选中的
            //推翻结论,找是否有没有被选中的
            //假设所有的input都被选中了
            var flag = true;
            //遍历每一个input,判断是否有没被选中的
            for(var i = 0; i< inps.length ; i++){
              if(inps[i].checked === false){
                flag = false;
                break;
              }
            }
    
            //最后判断flag的值给全选设置checked值
            all.checked = flag ;
          }
        }
    
    
      </script>

    这个题目中主要用到的一种思想就是假设成立法,假设一个结论,然后去推翻结论的过程。

  • 相关阅读:
    APP支付,后台支付宝生成预支付设置超时时间timeout_express无效,使用time_expire代替
    一些学习资料
    自连接
    模型成员
    模型查询
    模板
    管理站点
    视图
    设计模型
    搭建开发环境
  • 原文地址:https://www.cnblogs.com/z-lin/p/10982694.html
Copyright © 2011-2022 走看看