• 第一天上传我的前端基础笔记


    第一部分:JQ
    节点.on事件 = function() {}

    jq对象.事件(function(e){   });

    get("#id");
    get("tag");

    createElement("div", {...});

    // 给一个div设置一个样式,为其添加点击事件
    var div = 。。。
    div.style.pppp = pppp;
    div.onclick = function() {}

    // jq
    $("#dv")
        .css({color:"red",backgroundColor:"yellow"})
        .click(function(){})
        .ff

    // 给#dv中的a标签添加点击事件
    var div = ...
    var alist = div.get....
    for(...) {
        
    }

    // 隐式迭代
    $("#dv a").click(function() {});

    bootstrap

    <div class="center">
    </div>


    [5,6,7].concat.apply([], 1,2,3)
    // [5,6,7,1,2,3]


    var arg = 0;
    $.map(arr, function(v, i) {
        return v + arg;
    })


    var f = function() {};

    var arg = 0;
    $.map(arr, f, arg);
    ----------------
    get("#id").find().css().sss().s()....

    var jk = {item:[],
            fn:function(){
                // ...
                return this;
            },
            get:function(){
                // ...
                return this;
            },
            find:function(){
                // ...
                return this;
            },
            css:function(){
                // ...
                return this;
            }
        };

    jk.get().css().foind()...


    1.jq中常用的选择器有:
         id   #id
         类   .className
         标签  标签名
         通用   *
     语法:$("选择器").方法()

      设置样式常用方法:
      .css()
          .css("样式名","样式值")    //一次只能设置一个样式
          .css({
              样式名:"值",
               样式名:"值",        //一次可以设置多个样式
           })
          

     .html()方法和.text()方法相当于js中的innerHTML和innerText
      语法:
         字符串=jq对象.text();
         jq对象.html("字符串");

    2.多条件选择器(组合 , 复合)
        $("#id.target,className")
    3.层次选择器
          后代选择器     $(祖代 后代)
          子代选择器     $(父>子)
          紧随选择器     $(前+后)//$(前+*)
          紧随的同义方法 $(前).next(选择器)或$(前).next()
          向后选择器     $(前~后)//$(前~ *)
          向后的同义方法 $(前).nextAll(选择器)或$(前).nextAll()
          向前选择器     $(现).priv()与privAll()
          反选方法       $(现).siblings()
          所有选择器     $('*')
     
       注:选择器表达式中的空格不能多也不能少
      使用.end()方法可以将破坏的链回复到原来的样子

       addClass()   给元素添加类样式
       removeClass()  移除元素的类样式
       hasClass()     判断元素是否具有类样式
       toggleClass()  切换类样式,有就移除,没有就加上
    4.基本的过滤选择器
        // 过滤器,用于过滤选中的元素
            // 语法:   $("选择器:过滤器")
            // 在选择器选中的所有元素中,根据过滤器进行筛选
            // $("选择器").filter(过滤器)
            // 将选中的元素当数组看,
            // 找里面的第一个(:first),最后一个(:last)
            // 奇数个(:odd),偶数个(:even),大于指定索引(:gt(i))
            // 小于指定索引(:lt(i)),等于指定索引(:eq(i))
            // 不具备指定选择器(:not(selector))

            // 过滤器可以累积使用
            // :过滤:过滤
            // 执行等价于,一步一步的执行过滤,后面的过滤用前面过滤的结果做源
          例如:$("#dv a:first").text("选中的文本和节点");
           // 直接获得元素
            // :header获得页面中所有的h标签
            // :animated正在执行jq动画的元素
            // :focus
           例如: $("#dv :header").css("color", "olive");只在div里面找h
                  $(" :header").css("color", "olive"); 在整个页面里面找h

       属性过滤器的语法
             [属性名]
             [属性名=值]
           例如: 获得页面中所有有name属性的标签
                 $("*[name]")   *可以省略
            例如:  获得表单下性别的标签
                 $("#form input[type=checkbox][name=sex]")
         
             [name*=value]      包含
             [name^=value]    以value开头的属性
             [name$=value]    以value结尾的属性
             [name!=value]    不为value值的属性

             [name|=value]    属性值以value开头,并使以前缀的形式出现  jk-color
             [name~=value]    专门匹配用空格隔开的属性(除了在开头和结尾处)

            例如: $("[jk][jk!=jk]").css("color", "red");
                   $("[jk$=jk]").css("color", "red");
                   $("[jk|=j]").css("color", "red");

          checked会得到checkbox、radio和select   //checked可以得到选中的结果,如果要选中全部只需将checked设为true,全不选就设为false即可
          selected只会得到select标签
          enabled    选取表单中所有启用的元素
          disenabled  选取表单中所有未被启用的元素
       内容过滤器:
           :contains   包含该内容的标签
                 $("div:contains(3)").css("border", "1px solid red");
            empty   为空的标签
                 $("div:empty").css({ "200px", height: "150px", border: "1px dashed red" });
            has()   是否包含该选择器或标签
                $("div:has(:input)").css({ "200px", height: "150px", border: "1px dashed green" });
            parent  可以找父类的标签
                $("div:has(*) > *:parent").css("border", "1px solid red");

    10.DOM对象和JQ对象的相互转换:

       将DOM对象转换成jq对象:只需要将DOM对象用$砸一下即可$(DOM对象)
       将jq对象转换成DOM对象:1.jq对象[0] 2.jq对象.get(0) 两种方法

    11.jq中的.html()方法和.text()方法 为了实现innerHTNL和innerText
       语法:传参设置  无参取值
        字符串=jq对象.text();
         jq对象.html();
    12..val()方法和.text()用法类似,等价于设置和获取元素的value值

    13 .attr()方法等价于setAttribute()和getAttribute()方法(传参设置  无参取值)
       语法:jq对象.attr("属性","值");
              字符串=jq对象.attr("属性");
    14.相对定位:
       1. $("选择器1","选择器2")  
          第二个参数可以是选择器 DOM对象 jq对象等,作用是在第二个参数中找符合要求的元素。
          如:$("span","this.parentNode").text("星"); 在当前选中元素的父元素中找span元素并将其值改为星。

       2.jq对象.find("选择器")  作用是在jq对象的后代元素中找符合要求的元素。
          如:$("this.parentNode").find("span").text("星"); 在当前选中元素的父元素中找span元素并将其值改为星。
    15.end()方法:恢复链即返回到最近一次破坏链的地方
    16.处理页面元素的类样式:
        (1)addClass()  给元素添加类样式
        (2)removeClass()  移除元素的类样式
        (3)hasClass()   判断元素是否具有类样式
        (4)(重点)toggleClass() 切换类样式,有就移除,没有就加上
    17. jq中DOM操作就是创建节点 设置节点属性attr(),获得节点熟悉,追加节点,移除指定的节点removeAttr()
         创建元素的语法:$("html代码")
        jq中追加元素的办法:
            父.append(子)或者 子.appendTo(父)
    第二部分:JS
    1、 复习
        -> js背景
        -> 代码的位置<script type="text/javascript"></script>
            -> 在一个页面中,所有的script共享一个编程区域
        -> 词法流程控制运算符
        -> 基本类型number、boolean、string(Number、Boolean、String)
            -> 互相转换(重点)
        -> 函数(难点)
            -> 函数是一等公民
            -> 函数是一个值
            -> 匿名函数(Lambda函数)
        -> 对象(难点)
            -> 就是键值对
            -> 创建方法new和json对象
            -> 关联数组的用法
        
    2、 变量名提升(作用域)
        -> js中不具备块级作用域
        -> js中函数里面的变量是局部作用域
        -> js访问变量的规则(*)
            js在解析变量的时候,首先在当前作用域中找是否具有这个变量
            如果有就直接使用,如果没有就到上一级作用域链中寻找,直到没有找到爆出错误

    3、 Math.random

        (0-1) -> (n,m)   (4,20)
        
        函数图像

    5、 DOM的操作,就是用JavaScript操作HTML节点
        -> 将HTML变成DOM树
            看到HTML会画DOM
        -> 创建节点,添加节点,删除节点
            var nodeObj = document.createElement("节点名");
            document.createTextNode("文本");
            
            父节点.appendChild(子节点);
            父节点.removeChild(子节点);
            
            // 获得节点
            document.getElementById("id号");
            document.getElementsByTagName("html的标签名");
                父节点.getElementsByTagName("html的标签名");
            
            // 节点的属性
            nodeType    1元素节点    2属性节点    3文本节点
            nodeName    元素节点使用,返回标签名的大写字符串
            nodeValue    文本节点使用,返回或设置文本
            
            // 获得子元素的节点
            父节点.childNodes
            父节点.firstChild
            父节点.lastChild
            
            // 获得兄弟节点
            当前节点.nextSiblings
            
        -> 设置节点的属性
            节点.setAttribute(属性名, 值);
            节点.getAttribute(属性名);
            
            // 一般的做法,可以设置或获取
            节点.属性名
        -> 设置文本
            文本节点.nodeValue
    6.句柄操作(一个对象可以同时添加多个句柄,他们之间互不影响)
       addEventListener("事件名(click onfous 等)",function)
       removeEventListener("要操作的类型(click onfous 等)",function)
       在小于等于ie8中添加事件和移除事件分别是:attachEvent,detachEvent
       例如  document.getElementById("btn").addEventListener("click",function(){alert("hello")});
             document.getElementById("btn").removeEventListener("click",function(){alert("hello")});
        
    7.事件对象event(可以简写e)
         type: 获取事件类型
         target:获取事件目标
         stopPropagation():阻止事件冒泡
         preventDefault():阻止事件的默认行为
      例如:
          <a href="第一个网站 .html" id="aid">第一个网站</a>
          document.getElementById("aid").addEventListener("click", fun);
                function fun(e) {
                    e.stopPropagation(); /*阻止事件冒泡*/
                    e.preventDefault();/*阻止事件的默认行为*/
                    alert(e.type);   返回结果是click
                     alert(e.target);返回结果是 http://localhost:6958/%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%BD%91%E7%AB%99%20.html
                }
     8. Data对象
         getFullYear()  获取年份
         getTime()      获取毫秒  从1970年开始算起到目前
         setFullYear()  设置具体的日期
         getDay()       获取星期      

    9.数组常用的方法
        concat()  拼接两个数组  a.concat(b)
        sort()   升序
        push()    在a数组的末尾追加一个d ;a.push("d")
        reverse()  反转数组
    10.Math方法
        round()   四舍五入
        random()  0-1之间的随机数
        Max()
         Min()
        abs()
    11.闭包的概念:
       将高级作用域链(作用域链的数字较大)中的函数赋值给低级作用域链,
        那么低级作用域链(作用域链的数字较大)中的成员就可以访问高级作用域链中的成员。

    12.函数的四种调用模式:
        函数 :    直接调用函数
        方法 :    必须要有对象 (var o={name:"找监狱"} o.say=function(){})
        构造函数 : 任何一个函数放在new后面就是构造函数,构造函数的this和方法中德this一样
                   构造函数的return发生变化,如果返回的是对象则直接返回,否则返回创建出来的对象
              
        apply或call:函数名.apply(对象,[参数数组])
                     函数名.call(对象,参数列表)
        **注意的是:在方法调用模式中this指得是当前对象(即上面的o),在函数调用模式中this指的是全局对象(window)。另外 如果把函数赋值给一个对象,那么此时this指的就是这个对象而不再是window
    13.火狐浏览器中获取屏幕的高度宽度分别用:window.screen.availWidth  window.screen.availHeight

    14.超链接 href里面的this代表window,只有事件中的this=事件源(也就是被选中的项)

    人生的成功不在于拿到一副好牌,而是怎样将坏牌打好。
  • 相关阅读:
    使用httpVueLoader加载vue单页面不用脚手架的方法
    uniapp微信小程序登录,获取手机号,支付,分享,消息订阅功能
    uniapp UI库 uview
    vue change阻止默认事件已解决
    elementui 添加和修改使用同一个表单清除表单数据和验证!!
    uniapp 分类实现多条件筛选
    uniapp 小程序订阅消息爬坑记
    时间选择器datetimerpicker封装使用(非脚手架)
    elementui 表单(添加和修改使用同一个)重置 && 开关(关键点)
    uniapp 小程序订阅消息
  • 原文地址:https://www.cnblogs.com/bin521/p/5674857.html
Copyright © 2020-2023  润新知