JQuery记得一些笔记,很基础

JQuery笔记

JQuery和JS入口函数的区别

获取dom元素

 // 原生js
window.onload = function () {
           console.log(document.querySelector("img"));
                            };
//JQuery
$(document).ready(function () {
 console.log($("img")[0]);
                            });

获取图片width

                            // 原生js
                            window.onload = function () {
                                          console.log(document.querySelector("img").width);
                            };
                            // JQuery
                            $(document).ready(function () {
                                          console.log($("img").width());
                            });

js可以获取到,JQuery获取不到

  • 原生JS和JQuery入口元素的加载模式不同
    • 原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行
    • JQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕就会执行
                            // 原生js
window.onload = function () {
              alert("1");
                            };
window.onload = function () {
              alert("2");
                            };
                            //弹2
                            // JQuery
$(document).ready(function () {
              alert("3");
                            });
$(document).ready(function () {
              alert("4");
                            });
                            //弹3,4
  • 原生JS如果编写了多个入口函数,后面编写的会覆盖前面编写的
  • JQuery中编写多个入口函数,后面的不会覆盖前面的

JQuery入口函数多种写法

                            // 写法1
                            $(document).ready(function () {
                                          console.log("1");
                            });
                            // 写法2
                            jQuery(document).ready(function () {
                                          console.log("2");
                                          
                            });
                            // 写法3
                            $(function () {
                                          console.log("3");
                            });
                            // 写法4
                            jQuery(function () {
                                          console.log("4");
                            });

JQuery的核心函数

      $(function () {
        // 接收一个函数
        // 那不就是入口函数嘛,哈哈
        //   接收一个字符串
        console.log($("img")[0]);
        // 接收一个字符串选择器
        console.log($("#box01"));
        // 接收一个字符串代码片段
        console.log($("<p>我是段落</p>"));
        // 接收一个DOM元素
        //会被包装成一个JQuery对象返回
        var span = document.querySelector("span");
        console.log($(span));
      });

静态方法和实例方法

$(function () {
    function function01() {                                   function01.staticMethod = function () {                                alert("static");
                                          }
//              静态方法调用
                                                             function01.staticMethod();
//              实例方法
                                              function01.prototype.instanceMethod = function () {
                                                        alert("instance");
                                          }
var a = new function01();
// 通过实例调用实例方法
                                          a.instanceMethod();

                            });

静态方法each方法

$(function () {
                                          var arr = [1, 3, 5, 7, 9];
                                          // 第一个参数:遍历到的元素
                                          // 第二个参数:当前遍历到的索引
                                          // 原生js只能遍历数组,不能遍历伪数组
                                          arr.forEach(function (value, index) {
                                                        console.log(value + ":" + index);

                                          });
                                          // 第一个参数:当前遍历到的索引
                                          // 第二个参数:遍历到的元素
                                          // 可以遍历伪数组
                                          $.each(arr, function (index, value) {
                                                        console.log(value + ":" + index);

                                          });
                            });

map方法

                            $(function () {
                                          var arr = [1, 3, 5, 7, 9];
                                          // 原生js的map方法遍历
                                          // 第一个参数:当前遍历的元素
                                          // 第二个参数:当前遍历到的索引
                                          // 第三个参数:当前被遍历的数组
                                          // 不能遍历伪数组
                                          arr.map(function (value, index, array) {
                                                        console.log(value, index, array);

                                          });
                                          // 回调函数
                                          // 第一个参数:要遍历的数组
                                          // 第二个参数:没遍历一个元素之后执行的回调函数
                                          // 可以遍历伪数组
                                          $.map(arr, function (value, index) {
                                                        console.log(value, index);

                                          })
                            });

JQuery的map和each区别?

  • each默认返回值就是遍历的对象

  • map默认返回值是空数组

  • each不支持在回调函数中对遍历的数组进行处理

  • map可以在回调函数的返回值中处理遍历的数组

其他静态方法

                                          // 去除两边的空格
                                          var str="   str   ";
                                          console.log(str);
                                          var res=$.trim(str);
                                          console.log(res);
                                          // 判断是否为window对象
                                          console.log($.isWindow(window));
                                          // 判断是否为数组对象
                                          console.log($.isArray(str));

静态方法holdReady

暂停入口函数

$.holdReady(true)

false:恢复入口函数

内容选择器

// 既没有子元素也没有文本内容的指定元素
                                          console.log($("div:empty"));
                                          // 有文本内容或者有子元素的指定元素
                                          console.log($("div:parent"));
                                          // 包含指定文本(div01)内容的指定元素
                                          console.log($("div:contains('div01')"));
                                          // 包含指定子元素(span)的指定元素
                                          console.log($("div:has('span')"));

属性和属性节点

原生JS

                                          function Person() {

                                          }
                                          var person = new Person();
                                          // 属性
                                          person.name = "jack";
                                          person["age"] = 12;
                                          console.log(person.name);
                                          console.log(person.age);
                                          // 设置属性节点
                                          $(".div01")[0].setAttribute("name", "haha");
                                          // 获取属性节点
                                          console.log($(".div01")[0].getAttribute("name"));

JQuery

                                          // attr()
                                          // 注意点:
                                          //一个参数是获取: 无论找到多少个元素,都只会返回第一个元素指定的属性节点的值
                                          // 两个参数是设置:找到多少个元素就会设置多少个元素
                                          // 设置属性节点
                                          $(".div01").attr("name", "haha");
                                          // 获取属性节点
                                          console.log($(".div01").attr("name"));
                                          // removeAttr
                                          // 注意点:
                                          // 删除找到的所有指定元素的属性节点(name和class节点)
                                          $(".div01").removeAttr("name class");

prop和removeProp

                                          // prop特点和attr一致
                                          $("div").eq(1).prop("demo","haha");
                                          console.log($("div").eq(1).prop("demo"));
                                          // removeProp和removeAttr一致
                                          $("div").removeProp("demo");
                                          console.log($("div").eq(1).prop("demo"));
                                          // prop能操作属性,还能操作属性节点
                                          $("div").eq(1).prop("class","haha");
                                          // prop和attr区别
                                          console.log($("input").prop("checked"))//true or false
                                          console.log($("input").attr("checked"))//checked or undefined

操作类

 <style>
                            .red {
                                          background-color: red;
                            }

                            .border {
                                          border: 1px solid #000;
                            }

                            div {
                                          height: 100px;
                                          width: 100px;
                            }
              </style>
              <script>
                            $(function () {
                                          var btn01 = $("button")[0];
                                          btn01.addEventListener("click", function () {
                                                        // 添加类(red border)
                                                        $("div").addClass("red border")
                                          });
                                          var btn02 = $("button")[1];
                                          btn02.addEventListener("click", function () {
                                                        // 删除类(red border)
                                                        $("div").removeClass("red border")
                                          });
                                          var btn03 = $("button")[2];
                                          btn03.addEventListener("click", function () {
                                                        // 切换类(有就删除,没有就添加)
                                                        $("div").toggleClass("red border")
                                          });
                            });
              </script>
</head>

<body>

              <button>添加</button>
              <button>删除</button>
              <button>切换</button>
              <div></div>
</body>

文本值

                                          // 和原生的innerHtml一致
                                          // 设置普通文本
                                          $("div").eq(0).html("我是普通文本呀");
                                          // 设置标签
                                          $("div").eq(1).html("<p>我是p标签</p>");
                                          // 获取标签
                                          console.log($("div").eq(0).html());
                                          console.log($("div").eq(1).html());
                                          // 和原生的innerText一致
                                          // 设置普通文本
                                          $("div").eq(0).text("我是普通文本呀");
                                          // 设置标签
                                          $("div").eq(1).text("<p>我是p标签</p>");
                                          // 设置输入框的输入值
                                          $("input").eq(0).val("我是普通文本呀");
                                          // 设置输入框的输入值 <p>我是p标签</p>
                                          $("input").eq(1).val("<p>我是p标签</p>");
                                          // 获取输入框的输入值
                                          console.log($("input").eq(1).val());

操作样式

                                          // 设置样式
                                          $("div").css({
                                                        width: "100px",
                                                        height: "100px",
                                                        backgroundColor: "red"
                                          });
                                          // 获取样式
                                          console.log($("div").css("width"));

位置

                                          // 获取元素宽度
                                          console.log($("div").eq(0).width());
                                          // 左偏移量距离屏幕,可以设置offset({left:20px})
                                          console.log($("div").eq(0).offset().left);
                                          // 左偏移量距离上一个定位元素,不能设置
                                          console.log($("div").eq(0).position().left);

scroll滚动

                                          window.addEventListener("scroll", function () {
                                                        // 滚动偏移位
                                                        console.log($(window).scrollTop());
                                          });
                                          $("textarea")[0].addEventListener("scroll", function () {
                                                        // 可以设置滚动偏移量
                                                        console.log($("textarea").scrollTop(100));
                                          });

事件绑定

                                          // 多个绑定事件都不会覆盖
                                          $("button").eq(0).click(function(){
                                                        alert("click");
                                          });
                                          $("button").eq(0).mouseenter(function(){
                                                        alert("mouseenter");
                                          });
                                          // 多个绑定事件都不会覆盖
                                          $("button").eq(0).on("click",function(){
                                                        alert("click");
                                          });
                                          $("button").eq(0).mouseenter(function(){
                                                        alert("mouseenter");
                                          });

事件移除

                                          function clickEvent(){
                                                        alert("click");
                                          }
                                          function mouseenterEvent(){
                                                        alert("mouseenter");
                                          }
                                          // 多个绑定事件都不会覆盖
                                          $("button").eq(0).click(clickEvent);
                                          $("button").eq(0).mouseenter(mouseenterEvent);
                                          // 不传递参数,则解除所有事件
                                          // $("button").off();
                                          // 传递一个参数,解除指定类型的事件
                                          $("button").off("mouseenter");
                                          // 解除指定类型的指定事件
                                          $("button").off("mouseenter",click);

事件冒泡和默认行为

                                          $(".son").click(function (event) {
                                                        alert("son");
                                                        // 阻止事件冒泡方法一
                                                        // return false;
                                                        // 阻止事件冒泡方法二
                                                        event.stopPropagation();
                                          });
                                          $(".father").click(function () {
                                                        alert("father");
                                          });
                                          $("a").click(function(event){
                                                        // 阻止默认行为方法一
                                                        // return false;
                                                        // 阻止默认行为方法二
                                                        event.preventDefault();
                                          })

事件自动触发

                                          $(".father").click(function () {
                                                        alert("father");
                                          });
                                          // 自动触发事件,触发冒泡,会触发默认行为
                                          $(".father").trigger("click");
                                          // 自动触发事件,不会触发冒泡,不会触发默认行为
                                          $(".father").triggerHandler("click");

事件委托

                                          // 事件委托:请别人帮忙办事,将结果反馈给我
                                          $("button").click(function(){
                                                        $("ul").append("<li>n个小li</li>")
                                          });
                                          $("ul").delegate("li","click",function(){
                                                        console.log($(this).html());
                                          });

节点

添加

 // 新建节点
                                          var $li = $("<li></li>");
                                          // 添加节点到最后
                                          // $("ul").append($li);
                                          // $("ul").prepend($li);
                                          // 添加节点到最前面
                                          // $li.appendTo($("ul"));
                                          // $li.prependTo($("ul"));
                                          // 添加节点到指定元素的后面
                                          // $("ul").after($li);
                                          // $li.insertAfter($("ul"));
                                          // 添加节点到指定元素的前面
                                          // $("ul").before($li);
                                          // $li.insertBefore($("ul"));

删除

                                          // 删除指定元素
                                          // $("li").eq(0).remove();
                                          // $("li").remove(".choice");
                                          // $("li").eq(0).detach();
                                          // $("li").eq(0).detach(".choice");
                                          // 删除指定元素的内容和元素
                                          // $("li").eq(0).empty();

替换

                                          var $span=$("<span></span>")
                                          // $("li").replaceWith($span);
                                          // $span.replaceAll($("li"));

复制

                                          var $span = $("<span></span>");
                                          // 浅复制:只会复制元素,不会复制事件
                                          var shallow = $("li:first").clone(false);
                                          console.log(shallow);
                                          // 深复制:复制元素,会复制事件
                                          var deep = $("li:first").clone(true);
                                          console.log(shallow);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小赵OvO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值