preface

有时候我们在前端写jquery的时候,会自己自定义些方法,这样可以不需要重复造轮子。先说说2种自定义方法的区别:

  1. 不跟在选择器后面的
  2. 跟在选择器后面的。

那下面说说如何自定义jquery方法。

使用extend方法来扩展

方法1

下面这样方式来扩展jquery的方法是不能在前面添加选择器的,直接调用方法即可。

代码如下:

<script src="jquery-2.2.3.js"></script>
<script>
jQuery.extend({
wocao: function () { //wocao为方法名,与function用冒号隔开
return "艹"
},
}); var ret = $.wocao(); // 调用刚才的方法
alert(ret) </script>

方法2

这个方法在jQuery和extend之间添加了fn,表示可以跟在选择器之后。如下面所示:

<script src="jquery-2.2.3.js"></script>
<script>
jQuery.fn.extend({
fuck:function () {
return 'hehe'
},
}) var nid = $('h1').fuck(); // 添加了fn,就可以跟在选择器之后,那么下面alert才能出来。
alert(nid)
</script>

自执行函数与jqueyr自定义的方法

我们自定义的方法通常是放在一个js文件里,所以这又涉及到,当别人引用你这个js脚本时,就要通过自执行函数来完成自定义方法的初始化工作。下面请看例子:

我们新建的一个js文件,文件名是selfdefine.js,文件代码如下:

/**
* Created by Leo on 2016/12/21.
*/ (function(arg){
arg.extend({
wocao: function () {
return "艹"
},
}); arg.fn.extend({
fuck:function () {
return 'hehe'
},
});
})(jQuery);

然后在另一个html引用这个js脚本

<script src="jquery-2.2.3.js"></script>
<script src="selfdefine.js"></script>
<script>
var he = $.wocao();
alert(he)
var nid = $('h1').fuck();
alert(nid)
</script>

访问这个html页面,能够弹框出来。

使用案例:

我们前端需要验证用户输入的IP,以及其他字段,由于第三方的插件看的眼花缭乱,且用起来嫌麻烦,所以呢我们在这里可以自定义jquery的方法来实现对用户输入的验证,我这里是自己单独写的一个js文件,需要调用里面的方法时候,我们首先在html页面引入,代码如下:

    <script src="/static/js/selfdefine.js" type="text/javascript"></script>

其次再看自定义的js文件代码:

/**
* Created by Leo on 17-3-23.
*/ (function(arg) {
arg.extend({
checkip: function (value) { // 对传入的值 进行校验,判断是否满足IP
return /^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))$/.test(value);
}
}); arg.extend({
checkNum: function (value) { // 判断是否为正整数
return /^[0-9]*[1-9][0-9]*$/.test(Number(value))
}
}) arg.extend({
checkLength: function(value) { // 判断是否为空,为空返回false
if(value.length == 0 ){
return false
}else{
return true
}
}
})
})(jQuery);

然后我们看看如何使用这些方法:

我们首先需要对哪些字段检测,那么就if去判断就可以了。代码如下所示:

 if($.checkip(dns_StartIp){   // 检测指定的值是否输入正确,这个值可以从用户输入框内获取
/* logic code */
}

8 HTML&JS等前端知识系列之jquery的自定义方法的更多相关文章

  1. 5 HTML&JS等前端知识系列之jquery基础

    preface jquery其实就是对javascript的再次封装,方便我们开发者调用,下载地址是:http://jquery.com/download/ ,下面就说说常用使用方法 选择器 基本选择 ...

  2. 7 HTML&JS等前端知识系列之jquery的事件绑定

    preface 我们知道,每一个a,input等等标签都可以为其绑定一个事件,onclick也好,focus 也罢,都可以绑定的.但是众神key想过这个问题没有,倘若这里有1000个input标签需要 ...

  3. 3 HTML&JS等前端知识系列之javascript的基础

    preface 作为一名运维开发,必须懂得前端知识,比如javascript,dom等等,下面就聊聊javascript. include 数据格式 条件判断,循环流程等. 函数 面向对象 what ...

  4. 4 HTML&JS等前端知识系列之Dom的基础

    preface 主要聊聊dom的编程,包含下面的内容: what's the dom dom选择器 innerText 替换或写入文本 value 获取input,select,textarea的值 ...

  5. 8 HTML&JS等前端知识系列之Ajax的例子

    what is ajax ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新 ...

  6. 9 HTML&JS等前端知识系列之Ajax post请求带有token向Django请求

    我们 在母板上写入这段代码: <script type="text/javascript"> // 个人定义大函数,不是重点,可以忽略 $(document).read ...

  7. 大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app

    大前端技术系列:TWA技术+TensorFlow.js => 集成原生和AI功能的app ( 本文内容为melodyWxy原作,git地址:https://github.com/melodyWx ...

  8. JS前端知识模块大全

    公司前端:小胖提供,表示感谢 1. 基础 HTML, CSS, JS 文档 W3CSCHOOL: http://www.w3schools.com/ MDN: https://developer.mo ...

  9. 前端知识复习: JS选中变色

    前端知识复习:JS选中变色 上篇文章 :前端知识复习:Html DIV 图文混排(文字放在图片下边) Js选中图片效果 <!DOCTYPE html> <html xmlns=&qu ...

随机推荐

  1. 前端css框架SASS使用教程(转)

    一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了SASS的主要用法.我的目标是,有了这篇文章,日常的一 ...

  2. UITabBarController 基本定制

    UITabBarController 定制 特点 用法 1.准备好你的tabBar图片及其他图片(哈哈哈!!!!),我的图片都放在了Assets.xcassets中. 2.导入本工程中的Categro ...

  3. MYSQL离线安装

    由于MySQL的广泛应用,MySQL的安装也就成了大家经常会碰到的问题.并且由于不是所有机器都可连接外网,所以MySQL的离线安装显得比较重要.而本文旨在介绍CentOS6.6下离线安装MySQL. ...

  4. node.js+socket.io配置详解

    由于我是在win7的环境下,在这里就以win7系统为例进行讲解了. 首先需要在nodejs官网下载最新版的node.js,下载完毕直接安装即可,安装成功后在cmd命令行中执行node指令,如下结果就说 ...

  5. MYSQL基础操作之数据约束与关联查询

    一.MYSQL约束 1.默认值约束,当字段没有插入值的时候,mysql自动给该字段分配默认值. 默认值的字段允许为空. 对默认值字段也可以插入null. CREATE TABLE STUDENT( I ...

  6. the request resource is not available

    form表单递交数据的问题 我的解决方法 将要访问的servlet地址写入form的action中 例如:访问地址为http://localhost:8080/Webprojectselfservic ...

  7. MVC @Html.TextBoxFor 格式化

    不能使用Html.EditorFor() 因为需要为生成的控件 指定HTML特性 @Html.TextBoxFor(model => model.StartDate, new { Value = ...

  8. 自动分割mp3等音频视频文件的脚本

    由于种种关系,我需要对一批mp3文件进行分割(切割).每个音频文件大约1小时,需要切成每10分钟1个文件,文件名要带序号.手工分割工作量太大,不符合我等“懒人”的做法.于是找到了大名的”格式工厂“. ...

  9. Yii2 vendor出现bower-asset这么解决

    yii\base\InvalidParamException: The file or directory to be published does not exist: /data/wwwroot/ ...

  10. mdadm设定RAID磁盘阵列,且当分区故障后如何重建

    首先,fdisk建立不同分区,且设为fd格式 其次, mdadm -C md0 -a yes -l -n /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sd ...