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. jQuery技巧大放送

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...

  2. 内网渗透-代理(reGeorg)

    我对于reGeorg的使用,只是简单说下. 首先需要下载reGeorg,下载地址:https://github.com/sensepost/reGeorg 然后将reGeorg,上传到服务端.直接访问 ...

  3. jdbc数据库连接过程及驱动加载与设计模式详解

    首先要导入JDBC的jar包:接下来,代码:Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就 ...

  4. SQLite学习笔记(十一)&&虚拟机原理

    前言      我们知道任何一种关系型数据库管理系统都支持SQL(Structured Query Language),相对于文件管理系统,用户不用关心数据在数据库内部如何存取,也不需要知道底层的存储 ...

  5. 理解OVER子句

    简介 Over子句在SQLServer 2005中回归,并且在2012中得到了扩展.这个功能主要结合窗口函数来使用:也可以在序列函数"NEXT VALUE FOR"使用.OVER子 ...

  6. sql server 常用的扩展存储过程

    sql server 里面提供了丰富的系统存储过程来辅助我们管理数据库以及开发.今天分享介绍一些常用的数据库扩展存储过程 xp_cmdshell 这个大家都比较熟悉了,使用xp_cmdshell 可以 ...

  7. 无表头单链表的总结----从a链表中删去与b链表中有相同ID的那些节点

    #include"head.h" struct Student* del_same_ID(struct Student*p1, struct Student*p2) { struc ...

  8. JAVA开发中遇到的小白点

    这里主要是自己个人开发中遇到的一些小问题,自己攒起来,来弥补自己薄弱的JAVA基础,大神不要见笑 1. DateFormat格式化的HH和hh区别: public static boolean com ...

  9. Shell教程

    http://www.reddragonfly.org/abscn/index.html

  10. 代码管理工具 --- git的学习笔记一《git的个人开发》

    重点摘要: 创建了一个文件后首先先通过git add . 添加到暂缓区,然后通过git commit -m "提交的名字" 提交到本地仓库,最后才可能push到远程仓库. 1. 个 ...