记工作中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); //移除警示样式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jQuery 是一个 JavaScript 库,它通过封装了常用的 JavaScript 功能,让开发者可以更加方便地进行 JavaScript 开发。 然而,JavaScript 本身并没有直接获取客户端 IP 的方法,因为这需要在服务端进行处理。如果你想要获取客户端 IP,需要借助服务端语言来实现。 如果你使用的是 PHP,可以使用 `$_SERVER['REMOTE_ADDR']` 来获取客户端 IP。如果你使用的是其他语言,也可以查找对应的获取客户端 IP 的方法。 在前端页面,你可以使用 Ajax 技术将客户端 IP 发送到服务端,然后进行相应的处理。但是需要注意的是,客户端 IP 是可以被伪造的,所以在处理客户端 IP 时需要进行相应的安全性检查和防范措施。 ### 回答2: 在jQuery,无法直接通过客户端IP地址来获取,因为jQuery是一个客户端的JavaScript库,它主要用于处理HTML DOM、事件处理和动画效果等功能,而IP地址是由服务器分配的信息,它是在客户端与服务器之间的通信传递的。但是,可以通过使用AJAX来向服务器发送请求,从服务器获取客户端IP地址。 以下是使用jQuery的代码示例,通过AJAX向服务器发送请求获取客户端IP地址: ```javascript $.ajax({ url: "https://api.ipify.org/?format=json", dataType: "json", success: function(data) { var clientIP = data.ip; console.log("客户端IP地址为:" + clientIP); // 可以在此处进行处理,如显示在页面上 } }); ``` 在这个例子,我们使用了ipify API来获取IP地址。通过向`https://api.ipify.org/?format=json`发送GET请求,它将返回一个JSON对象,其包含了客户端的IP地址。在`success`回调函数,我们通过`data.ip`获取到具体的IP地址,然后可以对其进行进一步处理,如显示在页面上或进行其他操作。 需要注意的是,在使用该方法时,需要确保客户端能够访问到ipify API,因为这涉及到从服务器获取数据。此外,也可以使用其他的IP API来获取客户端IP地址,具体的实现方式可能会有所不同,但核心思想是相似的。 ### 回答3: 要使用jQuery获取客户端IP地址,需要借助第三方服务来实现。由于客户端IP地址是客户端与服务器之间的通信过程自动分配的,服务器无法直接通过JavaScript获取到客户端的IP地址。 一种方法是使用免费的IP定位服务,如"ip-api.com",它提供了一个公共的API接口可以查询客户端的IP地址。代码如下: ```JavaScript $(document).ready(function(){ var url = 'http://ip-api.com/json/?fields=query'; $.getJSON(url, function(data){ var ipAddress = data.query; console.log(ipAddress); }); }); ``` 这段代码使用了jQuery的`getJSON`方法来向ip-api.com发送请求,并获取返回的JSON数据。然后从数据提取出IP地址,并打印在控制台上。 注意,这种方式只适用于在浏览器执行JavaScript的情况。如需在服务器端获取客户端IP地址,需要使用其他方法,例如在服务器端进行日志录。 当然,也可以使用其他的IP定位服务来获取客户端的IP地址,并根据需要进行相应的处理。以上是其一种实现方式,具体使用哪种方式需要根据实际需求和可用资源来决定。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值