记工作中jQuery常用方法(一)

记工作中jQuery常用方法(一)

1. 说明

在开发前端过程中,基本上不可避免的用到jQuery,如果说 js 支撑了前端交互的基石,那 jQuery就是装饰这栋高楼的砖石。在此特记常用到的一些方法

2. click

绑定元素的点击事件,元素点击触发 一般工作中最常用到。它有两种模式,如下

//第一种模式 不带参数
let element = $("body");
element.click(function (){
    alert('click第一种模式');
}); //此时弹出 click第一种点击方式
var clickEvent = function (){
    alert("外置方法");
}
element.click(clickEvent); //此时先弹出 第一种模式 后弹出外置方法 click事件是追加的 设置多个的话 依次执行

//第二种方式 带参数
var clickEventWithParam = function (data){
   //此时取元素 就是data.data
}
element.click('s', clickEventWithParam); 
//如果想初始化被点击的话 可以直接 
element.click(); //此时加载页面时就会执行该事件

贴上jQuery截图。

在这里插入图片描述

2. on绑定事件

针对html动态生成的元素,你使用点击事件的话,是不起作用的,举例

 //html
 <body>
    <div class="box" style="width: 500px; height: 500px; border: 1px solid red;">
    </div>
</body>
//js
 var ele = $(".box");
    ele.click(function (){
        //涉及到事件触发的顺序 暂时不展开
        if ($(".son-box").length > 0){
            return;
        }
        $(this).append('<p class="son-box">这是一段测试的语句,点击后隐藏</p>');
    });
    $('.son-box').click(function (event){
        $(this).css("display", "none");
    });
//此时 针对 追加的 p标签,它的点击事件 是没有效果的 不会触发的。
ele.on('click', '.son-box', function (){
        $(this).css("display", "none");
    });
//替换之前的方法 使用on 的话 就可以了

在举例:

   ele.on('click', '.son-box', function (event){
        let color =  $(this).css("color") == "rgb(255, 0, 0)" ? "#000" : "#f00";
        $(this).css("color", color);
        event.stopPropagation();
    }); 
    ele.click(function (){
        $(this).append('<p class="son-box">这是一段测试的语句,点击后隐藏</p>');
    }); 
//遍历 对每个元素做颜色变换处理,并停止下一步触发 此处 颜色会自动转换为rgb 测试的是google浏览器 其他不清楚

on 也可以带参数 这里不举例

3. remove 和 empty

在进行数据初始化的时候 一般会用到这两个参数,例如tab数据动态切换,清除掉原有的数据,动态添加新增的数据。

此时就可以使用 empty() 。

empty()方法指的是清除该元素所有子节点包括其内容,同时也会删除绑定的数据及事件

在这里插入图片描述

remove() 方法 可以不带参数,表示移除元素本身。如果是里面有有选择器 则移除选择器,同时也是移除绑定的数据及事件

在这里插入图片描述

不举例了。

4. $.extend()

这个方法是编写插件常用到的,我们表示合并对象属性。分为初步合并,和深度合并,来看jQuery描述

在这里插入图片描述

这是不定参数,deep可选 表示是否深度融合,因为 $ 是 jQuery的简称,所以可以直接使用$.extend()

举例

// 1.第一种 初步复制
var apple = {
        name: "apple",
        color: "红色"
    };
    $.extend(apple, {brand: "红富士"});
    console.log(JSON.stringify(apple)); //输出{"name":"apple","color":"红色","brand":"红富士"}
	$.extend(apple, {brand: "红富士", name: "红富士苹果"});
	console.log(JSON.stringify(apple)); //输出{"name":"红富士苹果","color":"红色","brand":"红富士"}
//遇到相同的属性 可以覆盖 可以多个对象
 $.extend(apple, {brand: "红富士", name: "红富士苹果"}, {price: 18});
//输出{"name":"红富士苹果","color":"红色","brand":"红富士","price":18}
//深度融合
 var apple = {
        name: "apple",
        color: "红色",
        address: {
            "province": "山东省",
            "city": "烟台"
        }
    };
    $.extend(apple, {brand: "红富士", name: "红富士苹果", address: {city: "北京"}}, {price: 18});
    console.log(JSON.stringify(apple));
//{"name":"红富士苹果","color":"红色","address":{"city":"北京"},"brand":"红富士","price":18}
//直接替换 这是初步融合
$.extend(true, apple, {brand: "红富士", name: "红富士苹果", address: {city: "北京"}}, {price: 18});
console.log(JSON.stringify(apple));
//{"name":"红富士苹果","color":"红色","address":{"province":"山东省","city":"北京"},"brand":"红富士","price":18}
//深度融合 不是直接替换address属性 而是合并 只替换相同的 这一般与双层甚至多层结构对象合并

5. 选择器

  1. find(selector) 查找当前元素的子元素中是否存在这样的jQuery对象,
  2. children(selector) 只查询当前元素下面的子节点一个层级 不包括子孙元素,类似find 但比find 方法范围窄一些
  3. siblings(selector) 同级别 兄弟姐妹元素 不包括自身

6. each()

each方法 是jQuery的遍历常用方法,参数是 function函数,举例说明吧

$("p").each(function (index, item){
    //index 表示循环的索引 item表示 p的dom对象
});

在这里插入图片描述

举例 以layui 遍历为例子

//layui 遍历方法
  Layui.prototype.each = function(obj, fn){
    var key
    ,that = this;
    if(typeof fn !== 'function') return that;
    obj = obj || [];
    if(obj.constructor === Object){ //如果是对象
      for(key in obj){
        if(fn.call(obj[key], key, obj[key])) break;//对象调用call 改变作用域 相当于obj[key].fn 参数是key obj[key] 其中key是其属性 另一个是其value值 一般也是
      }
    } else {
      for(key = 0; key < obj.length; key++){
        if(fn.call(obj[key], key, obj[key])) break; //看下面示例
      }
    }
    return that;
  };
//form.js 片段截取 
// verifyElem校验元素 jQuery数组 其中 _代表索引 item表示 dom对象
 layui.each(verifyElem, function(_, item){
      var othis = $(this)
      ,vers = othis.attr('lay-verify').split('|')
      ,verType = othis.attr('lay-verType') //提示方式
      ,value = othis.val();
      othis.removeClass(DANGER); //移除警示样式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值