好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

继承和多态

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

比如,我们已经编写了一个名为 Animal 的class,有一个 run() 方法可以直接打印:

 class Animal(object):
    def run(self):
        print('Animal is running...')
 

当我们需要编写 Dog 和 Cat 类时,就可以直接从 Animal 类继承:

 class Dog(Animal):
    pass

class Cat(Animal):
    pass
 

对于 Dog 来说, Animal 就是它的父类,对于 Animal 来说, Dog 就是它的子类。 Cat 和 Dog 类似。

继承有什么好处?最大的好处是子类获得了父类的全部功能。由于 Animial 实现了 run() 方法,因此, Dog 和 Cat 作为它的子类,什么事也没干,就自动拥有了 run() 方法:

 dog = Dog()
dog.run()

cat = Cat()
cat.run()
 

运行结果如下:

 Animal is running...
Animal is running...
 

当然,也可以对子类增加一些方法,比如Dog类:

 class Dog(Animal):

    def run(self):
        print('Dog is running...')

    def eat(self):
        print('Eating meat...')
 

继承的第二个好处需要我们对代码做一点改进。你看到了,无论是 Dog 还是 Cat ,它们 run() 的时候,显示的都是 Animal is running... ,符合逻辑的做法是分别显示 Dog is running... 和 Cat is running... ,因此,对 Dog 和 Cat 类改进如下:

 class Dog(Animal):

    def run(self):
        print('Dog is running...')

class Cat(Animal):

    def run(self):
        print('Cat is running...')
 

再次运行,结果如下:

 Dog is running...
Cat is running...
 

当子类和父类都存在相同的 run() 方法时,我们说,子类的 run() 覆盖了父类的 run() ,在代码运行的时候,总是会调用子类的 run() 。这样,我们就获得了继承的另一个好处:多态。

要理解什么是多态,我们首先要对数据类型再作一点说明。当我们定义一个class的时候,我们实际上就定义了一种数据类型。我们定义的数据类型和Python自带的数据类型,比如str、list、dict没什么两样:

 a = list() # a是list类型
b = Animal() # b是Animal类型
c = Dog() # c是Dog类型
 

判断一个变量是否是某个类型可以用 isinstance() 判断:

 >>> isinstance(a, list)
True
>>> isinstance(b, Animal)
True
>>> isinstance(c, Dog)
True
 

看来 a 、 b 、 c 确实对应着 list 、 Animal 、 Dog 这3种类型。

但是等等,试试:

 >>> isinstance(c, Animal)
True
 

看来 c 不仅仅是 Dog , c 还是 Animal !

不过仔细想想,这是有道理的,因为 Dog 是从 Animal 继承下来的,当我们创建了一个 Dog 的实例 c 时,我们认为 c 的数据类型是 Dog 没错,但 c 同时也是 Animal 也没错, Dog 本来就是 Animal 的一种!

所以,在继承关系中,如果一个实例的数据类型是某个子类,那它的数据类型也可以被看做是父类。但是,反过来就不行:

 >>> b = Animal()
>>> isinstance(b, Dog)
False
 

Dog 可以看成 Animal ,但 Animal 不可以看成 Dog 。

要理解多态的好处,我们还需要再编写一个函数,这个函数接受一个 Animal 类型的变量:

 def run_twice(animal):
    animal.run()
    animal.run()
 

当我们传入 Animal 的实例时, run_twice() 就打印出:

 >>> run_twice(Animal())
Animal is running...
Animal is running...
 

当我们传入 Dog 的实例时, run_twice() 就打印出:

 >>> run_twice(Dog())
Dog is running...
Dog is running...
 

当我们传入 Cat 的实例时, run_twice() 就打印出:

 >>> run_twice(Cat())
Cat is running...
Cat is running...
 

看上去没啥意思,但是仔细想想,现在,如果我们再定义一个 Tortoise 类型,也从 Animal 派生:

 class Tortoise(Animal):
    def run(self):
        print('Tortoise is running slowly...')
 

当我们调用 run_twice() 时,传入 Tortoise 的实例:

 >>> run_twice(Tortoise())
Tortoise is running slowly...
Tortoise is running slowly...
 

你会发现,新增一个 Animal 的子类,不必对 run_twice() 做任何修改,实际上,任何依赖 Animal 作为参数的函数或者方法都可以不加修改地正常运行,原因就在于多态。

多态的好处就是,当我们需要传入 Dog 、 Cat 、 Tortoise ……时,我们只需要接收 Animal 类型就可以了,因为 Dog 、 Cat 、 Tortoise ……都是 Animal 类型,然后,按照 Animal 类型进行操作即可。由于 Animal 类型有 run() 方法,因此,传入的任意类型,只要是 Animal 类或者子类,就会自动调用实际类型的 run() 方法,这就是多态的意思:

对于一个变量,我们只需要知道它是 Animal 类型,无需确切地知道它的子类型,就可以放心地调用 run() 方法,而具体调用的 run() 方法是作用在 Animal 、 Dog 、 Cat 还是 Tortoise 对象上,由运行时该对象的确切类型决定,这就是多态真正的威力:调用方只管调用,不管细节,而当我们新增一种 Animal 的子类时,只要确保 run() 方法编写正确,不用管原来的代码是如何调用的。这就是著名的“开闭”原则:

对扩展开放:允许新增 Animal 子类;

对修改封闭:不需要修改依赖 Animal 类型的 run_twice() 等函数。

继承还可以一级一级地继承下来,就好比从爷爷到爸爸、再到儿子这样的关系。而任何类,最终都可以追溯到根类object,这些继承关系看上去就像一颗倒着的树。比如如下的继承树:

                 ┌───────────────┐
                │    object     │
                └───────────────┘
                        │
           ┌────────────┴────────────┐
           │                         │
           ▼                         ▼
    ┌─────────────┐           ┌─────────────┐
    │   Animal    │           │    Plant    │
    └─────────────┘           └─────────────┘
           │                         │
     ┌─────┴──────┐            ┌─────┴──────┐
     │            │            │            │
     ▼            ▼            ▼            ▼
┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐
│   Dog   │  │   Cat   │  │  Tree   │  │ Flower  │
└─────────┘  └─────────┘  └─────────┘  └─────────┘
 

静态语言 vs 动态语言

对于静态语言(例如Java)来说,如果需要传入 Animal 类型,则传入的对象必须是 Animal 类型或者它的子类,否则,将无法调用 run() 方法。

对于Python这样的动态语言来说,则不一定需要传入 Animal 类型。我们只需要保证传入的对象有一个 run() 方法就可以了:

 class Timer(object):
    def run(self):
        print('Start...')
 

这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。

Python的“file-like object“就是一种鸭子类型。对真正的文件对象,它有一个 read() 方法,返回其内容。但是,许多对象,只要有 read() 方法,都被视为“file-like object“。许多函数接收的参数就是“file-like object“,你不一定要传入真正的文件对象,完全可以传入任何实现了 read() 方法的对象。

小结

继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。

动态语言的鸭子类型特点决定了继承不像静态语言那样是必须的。

参考源码

animals.py

查看更多关于继承和多态的详细内容...

  阅读:46次

上一篇

下一篇

第1节:select里动态添加option    第2节:JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法    第3节:在js中怎样获得checkbox里选中的多个值?(jQuery)    第4节:子节点修改父节点样式(原生js和jquery)    第5节:JS与jQuery给元素添加样式的方法    第6节:利用jquery库来设计设置滚动条个性化样式    第7节:JQuery的jCarousellite插件打造超炫左右滚动效果    第8节:jQuery.Validate常用的一些验证规则    第9节:jquery实现密码强度验证    第10节:jQuery kinMaxShow焦点图代码适用于全屏    第11节:JQuery.slideBox图片滚动焦点图    第12节:jquery页面引导提示用户操作    第13节:jQuery全屏滚动插件fullPage.js    第14节:jquery fullPage.js制作搜狐快站页面效果    第15节:jQuery hover事件    第16节:jQuery页面侧边固定悬浮导航代码(带关闭按钮)    第17节:jQuery中 trigger() & bind() 使用    第18节:Jquery学习笔记:typeof的使用    第19节:HDHCMS收集整理通过JQUERY实现输字符入过滤Select选项    第20节:jquery 多个元素绑定同时绑定多个事件    第21节:Jquery脚本获取兄弟节点,父节点,子节点    第22节:基于formdata属性php+ajax+h5实现图片上传功能    第23节:php+mysql+jquery实现简易的检索自动补全提示功能    第24节:php使用gzip压缩传输js和css文件    第25节:如何利用PHP生成二维码    第26节:PHP加jQuery实现找回密码    第27节:php ajax 留言板 - 综合实例    第28节:php jquery ajax用户登录实例代码 - 综合实例    第29节:php+jquery ajax邮箱地址无刷新验证实例 - 综合实例    第30节:php+ajax实现无刷新的新闻留言系统 - 综合实例    第31节:MySQLSchema设计(四)一个MySQL里的JQuery:common_sc    第32节:Dedecms实现tags云标签随机颜色与字体大小方法总结    第33节:thinkphp 中的volist标签在ajax操作中的特殊性    第34节:ThinkPHP中使用ajax - Thinkphp    第35节:jquery autocomplete和thinkphp开发 - Thinkphp    第36节:Dwz+thinkphp整合下的数据导出到Excel - Thinkphp    第37节:thinkPHP实现瀑布流 - Thinkphp    第38节:PHP/Javascript/CSS/jQuery常用知识大全详细整理(原创    第39节:jquery 无刷新评论    第40节:php文件管理,可以点击按照时间,大小,名称排    第41节:推荐:PHP+jQuery+Ajax多图片上传的实例    第42节:Jquery AjaxUpload实现文件上传功能代码实例教程_自    第43节:WordPress侧边栏关闭/显示设置方法 - WordPress    第44节:WordPress利用jquery实现动态下拉菜单 - WordPress    第45节:WordPress中Ajax评论分页实现方法 - WordPress    第46节:jQuery实现WordPress读者墙、排行榜图片放大效果    第47节:WordPress增加返回顶部效果代码 - WordPress    第48节:Wordpress中将选中内容分享到新浪腾讯微博 - Word    第49节:WordPress 调用 jQuery一些方法小结 - WordPress    第50节:wordpress后台加载ajax.googleapis.com导致打开速度很慢    第51节:WordPress文章图片自动添加原图url链接 - WordPress    第52节:wordpress中调用自带juqery库的方法与注意事项 - W    第53节:常用的JQuery数字类型验证正则表达式整理_正则表    第54节:jQuery中的正则表达式分析 正则基础_正则表达式    第55节:XSS with $(location.hash) - 网站安全 - 自学php    第56节:随缘网络留言板v2(带审核置顶功能+ajax+jquery构架    第57节:grails的安全策略 - 网站安全 - 自学php    第58节:PHPWind flash xss 0day [2] - 网站安全 - 自学php    第59节:jQuery(<=1.6.2) DOMXSS 分析 - 网站安全 - 自学php    第60节:乐视MySQL盲注、callback反射型XSS及一处绝对路径泄    第61节:Paypal的一个Dom型XSS漏洞分析 - 网站安全 - 自学p    第62节:PHPCMS V9文章内容页点击量如何调用_phpcms_CMS教程    第63节:Asp.net基于ajax和jquery-ui实现进度条    第64节:Win7中打开chm文件内容无法显示问题 - Windows操作系    第65节:js代码另类劫持登录表单 - Windows操作系统 - 自学    第66节:jQuery实现简单的轮播图效果    第67节:jquery基础知识    第68节:jquery插件lazyload简单使用教程    第69节:videojs中文文档详解    第70节:video实现浏览器打开自动播放    第71节:Jquery中的$.cookie()方法    第72节:jQuery.fn和jQuery.prototype区别介绍    第73节:浅谈JQUERY的each方法    第74节:基于jQuery实现列表循环滚动小技巧(超简单)    第75节:jquery标签选择器应用示例详解    第76节:关于img的onload事件兼容ie下的bug问题    第77节:手把手教大家编写Jquery日历插件制作    第78节:Jquery使用小技巧汇总    第79节:jquery实现的3D旋转木马特效代码分享    第80节:jquery实现在网页指定区域显示自定义右键菜单效果    第81节:jquery分页实现原理详解    第82节:JavaScript如何调试有哪些建议和技巧附五款有用的调试工具    第83节:jquery如何判断当前浏览器的实现代码    第84节:jQuery插件开发精品教程(让你的jQuery更上一个台阶)【转】    第85节:我们谈一谈jQuery核心架构设计    第86节:jquery使用小技巧    第87节:解决IE中img.onload失效的方法    第88节:jQuery封装一个动态加载js和css插件    第89节:js图片等比例缩放    第90节:生成二维码的 jQuery 插件:jquery.qrcode.js    第91节:Jquery操作textarea,input,select,checkbox详解    第92节:带来一款JQUERY动画库tween.js可生成平滑动画    第93节:jquery图片滚动放大代码分享    第94节:jQuery处理XML数据解析方法详解    第95节:jquery方法之remove()方法详解    第96节:jquery实现滑动特效代码slide...方法详解    第97节:jquery右下角旋转环状菜单特效代码详解    第98节:jquery实现点击展开列表同时隐藏其他列表方法    第99节:jquery实现文件上传进度条特效    第100节:jquery+css3实现网页背景花瓣随机飘落特效    第101节:jquery实现动静态条形统计图    第102节:jquery地图map悬停显示省市详解    第103节:jquery Easyui快速开发详解    第104节:jquery+ajax请求且带返回值的代码    第105节:SyntaxHighlighter自动换行彻底解决办法    第106节:jquery如何实现点击滑动小图放效果    第107节:jQuery实现html元素拖拽    第108节:jqueryCtrl+Enter提交表单的方法    第109节:jquery实现列表内容的动态载入特效    第110节:PHP结合jQuery如何实现投票功能    第111节:推荐一个jquery统计图效果网站    第112节:简单的jquery入门指引讲解    第113节:jquery append 动态添加的元素事件on 不起作用的解决方案    第114节:PHP接受文件并获得其后缀名的方法    第115节:jquery实现选中单选按钮下拉伸缩效果    第116节:jquery实现点击查看更多内容控制段落文字展开折叠效果    第117节:jquery星星评分效果实现方法    第118节:jquery实现页面虚拟键盘教程    第119节:[转载]jquery实现的div窗口震动效果实例    第120节:jquery弹窗层效果讲解    第121节:jquery 判断图片是否加载完成方法汇总    第122节:jQuery uploadify在非IE核心浏览器下无法上传    第123节:jquery如何继承主类自定义方法    第124节:jquery如何获取网页URL    第125节:jquery的bind方法详解    第126节:jQuery如何实现平滑滚动页面到指定锚点链接的方法    第127节:jquery验证密码强度    第128节:js的json字符串转换为对象    第129节:JQuery中如何阻止表单的提交动作    第130节:如何使用Jquery获取Form表单中被选中的radio值    第131节:jquery.map()方法的使用详解    第132节:jquery 获取页面源码    第133节:jQuery实现鼠标点击弹出渐变层的方法    第134节:jQuery中$this和$(this)的区别介绍    第135节:jquery操作复选框(checkbox)大全    第136节:jquery如何实现图片上传预览    第137节:jQuery怎么检测返回值的数据类型    第138节:jQuery最常用的方法集    第139节:jquery.fn.extend与jquery.extend区别    第140节:jQuery中extend函数详解    第141节:jQuery实现文字滚动marquee标签效果    第142节:jquery模拟select下拉效果    第143节:jQuery的end()详解    第144节:jquery的$(document)和$(window)的区别    第145节:jQuery插件boxScroll实现图片轮播特效    第146节:JQUERY获取当前页面的URL信息    第147节:jQuery实现Twitter的自动文字补齐特效_jquery_自学p    第148节:分享一个Jquery实现中国地图插件    第149节:jQuery插件原来如此简单 jQuery插件的机制及实战    第150节:jquery弹出层插件下载_jquery图片弹出    第151节:jquery ajax get success not called; ajax调用返回200,但是    第152节:区别jQuery中height与width    第153节:jQuery插件的开发包括两种方式    第154节:推荐25个超炫的jQuery网格插件_jquery    第155节:jquery+php实现搜索框自动提示_jquery    第156节:jQuery操作cookie方法实例教程_jquery    第157节:基于jQuery实现文本框缩放以及上下移动功能_jqu    第158节:jQuery实现统计复选框选中数量_jquery    第159节:jQuery实现隔行背景色变色_jquery    第160节:使表格的标题列可左右拉伸jquery插件封装_jquery    第161节:jQuery事件绑定和委托实例_jquery    第162节:jquery中push()的用法(数组添加元素)_jquery    第163节:jquery提示效果实例分析_jquery    第164节:浅谈jQuery中对象遍历.eq().first().last().slice()方法    第165节:jquery操作对象数组元素方法详解_jquery    第166节:jquery选择器需要注意的问题_jquery    第167节:jQuery的ready方法详解_jquery    第168节:jQuery实现多按钮单击变色_jquery    第169节:jquery 操作css样式、位置、尺寸方法汇总_jquery_自    第170节:Jquery焦点图实例代码_jquery    第171节:基于jQuery实现复选框的全选 全不选 反选功能_j    第172节:理解jQuery stop()方法_jquery    第173节:jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解_j    第174节:jQuery验证插件 Validate详解_jquery    第175节:jQuery提示效果代码分享_jquery    第176节:jQuery 中$(this).index与$.each的使用指南_jquery_自学    第177节:Jquery对象和Dom对象的区别分析_jquery    第178节:常见的jQuery选择器汇总_jquery    第179节:jQuery选择器全集详解_jquery    第180节:jQuery简单实现网页选项卡特效_jquery    第181节:基于jQuery实现下拉框_jquery    第182节:浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用_jquer    第183节:基于jQuery实现表单提交验证_jquery    第184节:如何在MVC应用程序中使用Jquery_jquery    第185节:jQuery Ajax()方法使用指南_jquery    第186节:jQuery带箭头提示框tooltips插件集锦_jquery    第187节:jQuery Masonry瀑布流插件使用详解_jquery    第188节:超棒的响应式布局jQuery插件Freetile.js_jquery_自学    第189节:Jquery实现仿腾讯微博发表广播_jquery    第190节:jquery 实现返回顶部功能_jquery    第191节:jquery ui bootstrap 实现自定义风格_jquery    第192节:z-blog SyntaxHighlighter 长代码无法换行解决办法(jq    第193节:jQuery $命名冲突解决方案汇总_jquery    第194节:详谈jQuery中的this和$(this)_jquery    第195节:JQuery表单验证插件EasyValidator用法分析_jquery_自学    第196节:jquery中append()与appendto()用法分析_jquery    第197节:jQuery 插件开发指南_jquery    第198节:jquery checkbox 勾选的bug问题解决方案与分析_jquer    第199节:完美兼容各大浏览器的jQuery仿新浪图文淡入淡出    第200节:jQuery的deferred对象详解_jquery    第201节:推荐8款jQuery轻量级树形Tree插件_jquery    第202节:推荐10个2014年最佳的jQuery视频插件_jquery_自学ph    第203节:浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异_jqu    第204节:超炫的jquery仿flash导航栏特效_jquery    第205节:jQuery 动态云标签插件_jquery    第206节:jquery插件推荐浏览器嗅探userAgent_jquery    第207节:jquery插件推荐 jquery.cookie_jquery    第208节:JSON格式化输出_jquery    第209节:前端必备神器 Snap.svg 弹动效果_jquery    第210节:jQuery函数map()和each()介绍及异同点分析_jquery_自学    第211节:jquery的总体架构分析及实现示例详解_jquery_自学    第212节:jquery常用方法及使用示例汇总_jquery    第213节:JQuery遍历json数组的3种方法_jquery    第214节:jQuery修改li下的样式以及li下的img的src的值的方法    第215节:一款基jquery超炫的动画导航菜单可响应单击事件    第216节:加载列表时jquery获取ul中第一个li的属性_jquery_自    第217节:jQuery中ajax和post处理json的不同示例对比_jquery_自学    第218节:详解jquery中$.ajax方法提交表单_jquery    第219节:jQuery遍历对象、数组、集合实例_jquery    第220节:JQuery中使用.each()遍历元素学习笔记_jquery_自学p    第221节:jquery处理json对象_jquery    第222节:jQuery遍历之next()、nextAll()方法使用实例_jquery_自学    第223节:使用JQ来编写最基本的淡入淡出效果附演示动画    第224节:jQuery中parents()和parent()的区别分析_jquery    第225节:鼠标悬浮显示二级菜单效果的jquery实现_jquery_自学    第226节:JQuery 实现在同一页面锚点链接之间的平滑滚动    第227节:jquery 获取 outerHtml 包含当前节点本身的代码_jqu    第228节:jQuery获取对象简单实现方法小结_jquery    第229节:Jquery修改页面标题title其它JS失效的解决方法_jq    第230节:jQuery ajax serialize() 方法使用示例_jquery    第231节:基于jquery固定于顶部的导航响应浏览器滚动条事    第232节:用jquery模仿的a的title属性的例子_jquery    第233节:jQuery实现响应浏览器缩放大小并改变背景颜色_    第234节:深入分析JQuery和JavaScript的异同_jquery    第235节:运用jQuery定时器的原理实现banner图片切换_jquery    第236节:用简洁的jQuery方法toggleClass实现隔行换色_jquery_自    第237节:jQuery实现的导航条切换可显示隐藏_jquery_自学ph    第238节:jquery实现导航固定顶部的效果仿蘑菇街_jquery_自学    第239节:jquery中页面Ajax方法$.load的功能使用介绍_jquery_自    第240节:JQuery的Ajax中Post方法传递中文出现乱码的解决方法    第241节:jquery中post方法用法实例_jquery    第242节:用Jquery.load载入页面后样式没了页面混乱的解决方    第243节:利用jquery操作Radio方法小结_jquery    第244节:jquery获取radio值实例_jquery    第245节:JQuery判断radio是否选中并获取选中值的示例代码    第246节:jQuery实现点击该行即可删除HTML表格行_jquery_自学    第247节:iframe里面的元素触发父窗口元素事件的jquery代码    第248节:Jquery解析Json格式数据过程代码_jquery    第249节:ie8模式下click无反应点击option无反应的解决方法    第250节:jquery动态加载js/css文件方法(自写小函数)_jquery_自    第251节:jquery实现多行文字图片滚动效果示例代码_jquery    第252节:jQuery获取iframe的document对象的方法_jquery    第253节:Jquery $.getJSON 在IE下的缓存问题解决方法_jquery_自    第254节:打造个性化的功能强大的Jquery虚拟键盘(VirtualKe    第255节:JQuery 使用attr方法实现下拉列表选中_jquery_自学    第256节:jquery幻灯片插件bxslider样式改进实例_jquery_自学    第257节:jquery引用方法时传递参数原理分析_jquery_自学ph    第258节:兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码    第259节:jQuery 实现自动填充邮箱功能(带下拉提示)_jq    第260节:两种方法基于jQuery实现IE浏览器兼容placeholder效果    第261节:分享20款美化网站的 jQuery Lightbox 灯箱插件_jquer    第262节:Json实现异步请求提交评论无需跳转其他页面_jq    第263节:jQuery固定浮动侧边栏实现思路及代码_jquery_自学    第264节:jQuery对val和atrr("value")赋值的区别介绍_jquery_自学    第265节:jquery和js实现对div的隐藏和显示方法_jquery_自学    第266节:javascript 自定义回调函数示例代码_jquery    第267节:jQuery判断当前点击的是第几个li的代码_jquery_自学    第268节:一个jquery实现的不错的多行文字图片滚动效果_    第269节:Javascript中封装window.open解决不兼容问题_jquery_自学    第270节:使用jQuery将多条数据插入模态框的实现代码_jqu    第271节:使用jQuery.wechat构建微信WEB应用_jquery    第272节:分享一款基于jQuery的视频播放插件_jquery_自学ph    第273节:jquery uploadify 在FF下无效的解决办法_jquery_自学p    第274节:jquery中使用循环下拉菜单示例代码_jquery_自学ph    第275节:Jquery设置attr的disabled属性控制某行显示或者隐藏    第276节:javascript trim函数在IE下不能用的解决方法_jquery_自    第277节:一款由jquery实现的整屏切换特效_jquery    第278节:jquery实现类似淘宝星星评分功能有截图_jquery_自学    第279节:jQuery移除tr无效的解决方法(tr是动态添加)_jquery    第280节:基于jquery的文字向上跑动类似跑马灯的效果_jqu    第281节:常用的jquery模板插件——jQuery Boilerplate介绍_jqu    第282节:jquery实现一个简单好用的弹出框_jquery    第283节:jQuery将多条数据插入模态框的示例代码_jquery_自学    第284节:jQuery如何获取同一个类标签的所有值(默认无法获    第285节:$("").click与onclick的区别示例介绍_jquery    第286节:jquery 实现两Select 标签项互调示例代码_jquery_自学    第287节:jquery获得同源iframe内body下标签的值的方法_jquer    第288节:jquery得到iframe src属性值的方法_jquery    第289节:jquery动态分页效果堪比时光网_jquery    第290节:JQuery拖动表头边框线调整表格列宽效果代码_jqu    第291节:使用JQuery库提供的扩展功能实现自定义方法_jqu    第292节:三种取消选中单选框radio的方法_jquery    第293节:jQuery 浮动导航菜单适合购物商品类型的网站_jq    第294节:jQuery CSS()方法改变现有的CSS样式表_jquery_自学ph    第295节:jquery取子节点及当前节点属性值的方法_jquery_自学    第296节:jQuery通过点击行来删除HTML表格行的实现示例_jq    第297节:JQuery 给元素绑定click事件多次执行的解决方法_    第298节:在css加载完毕后自动判断页面是否加入css或js文件    第299节:使用js dom和jquery分别实现简单增删改_jquery_自学    第300节:jQuery 复合选择器应用的几个例子_jquery    第301节:无限树Jquery插件zTree的常用功能特性总结_jquery_自    第302节:jquery实现类似淘宝星星评分功能实例_jquery_自学    第303节:JQuery实现当鼠标停留在某区域3秒后自动执行_jq    第304节:使用jquery解析XML示例代码_jquery    第305节:jquery学习总结(超级详细)_jquery    第306节:jquery.idTabs 选项卡使用示例代码_jquery    第307节:jQuery之Deferred对象详解_jquery    第308节:jQuery动态创建html元素的常用方法汇总_jquery_自学    第309节:jQuery中index()的用法分析_jquery    第310节:jQuery表格插件datatables用法总结_jquery    第311节:jquery向上向下取整适合分页查询_jquery    第312节:jquery用offset()方法获得元素的xy坐标_jquery_自学p    第313节:jquery实现html页面 div 假分页有原理有代码_jquery    第314节:jquery mobile页面跳转后样式丢失js失效的解决方法    第315节:10分钟学会写Jquery插件实例教程_jquery    第316节:一个实用的图片切换支持点击切换和自动轮播_    第317节:jQuery 1.9移除了$.browser可以使用$.support来替代_jq    第318节:jQuery源码分析之jQuery中的循环技巧详解_jquery_自学    第319节:使用jquery实现放大镜效果_jquery    第320节:Enter回车切换输入焦点实现思路与代码兼容各大浏    第321节:jQuery淡入淡出元素让其效果更为生动_jquery_自学    第322节:jquery和css3实现的炫酷时尚的菜单导航_jquery_自学    第323节:jQuery级联操作绑定事件实例_jquery    第324节:Iframe实现跨浏览器自适应高度解决方法_jquery_自学    第325节:js/jquery判断浏览器的方法小结_jquery    第326节:解决jquery版本冲突的有效方法_jquery    第327节:事件委托与阻止冒泡阻止其父元素事件触发_jqu    第328节:jquery实现个人中心导航菜单效果和美观都非常不    第329节:jquery制作select列表双向选择示例代码_jquery_自学    第330节:jQuery表格列宽可拖拽改变且兼容firfox_jquery_自学    第331节:jQuery实现倒计时按钮功能代码分享_jquery_自学ph    第332节:jquery delay()介绍及使用指南_jquery    第333节:jQuery自带的一些常用方法总结_jquery    第334节:浅析JQuery中的html(),text(),val()区别_jquery    第335节:用jquery实现动画跳到顶部和底部(这个比较简单    第336节:JQuery $.each遍历JavaScript数组对象实例_jquery_自学    第337节:Jquery实现兼容各大浏览器的Enter回车切换输入焦点    第338节:自编jQuery插件实现模拟alert和confirm_jquery_自学ph    第339节:使用jquery.validate自定义方法实现"手机号码或者固    第340节:jquery ajax请求方式与提示用户正在处理请稍等_j    第341节:一个简单的动态加载js和css的jquery代码_jquery_自学    第342节:JQuery中的html()、text()、val()区别示例介绍_jquery_自    第343节:JQuery表格拖动调整列宽效果(自己动手写的)_jque    第344节:影响jQuery使用的14个方面_jquery    第345节:分享一个自己动手写的jQuery分页插件_jquery_自学    第346节:超级好用的jQuery圆角插件 Corner速成_jquery_自学p    第347节:jquery 取子节点及当前节点属性值的方法_jquery_自    第348节:一个支持任意尺寸的图片上下左右滑动效果_jqu    第349节:在JavaScript中重写jQuery对象的方法实例教程_jquer    第350节:jQuery中的read和JavaScript中的onload函数的区别_jque    第351节:jQuery焦点图切换简易插件制作过程全纪录_jquery    第352节:jQuery标签替换函数replaceWith()的使用例子_jquery_自    第353节:原生javascript实现的分页插件pagenav_jquery    第354节:jQuery实现异步获取json数据的2种方式_jquery_自学    第355节:jQuery实用函数用法总结_jquery    第356节:jQuery动画特效实例教程_jquery    第357节:jQuery事件用法实例汇总_jquery    第358节:Html5的placeholder属性(IE兼容)实现代码_jquery_自学    第359节:jQuery针对各类元素操作基础教程_jquery    第360节:jQuery异步加载数据并添加事件示例_jquery_自学ph    第361节:Jquery通过JSON字符串创建JSON对象_jquery    第362节:Jquery中扩展方法extend使用技巧_jquery    第363节:jquery使用$(element).is()来判断获取的tagName_jquery_自    第364节:jQuery响应鼠标事件并隐藏与显示input默认值_jque    第365节:字段太多jquey快速清空表单内容方法_jquery_自学    第366节:用jquery修复在iframe下的页面锚点失效问题_jquery    第367节:JQuery实现动态表格点击按钮表格增加一行_jquery    第368节:Jquery仿IGoogle实现可拖动窗口示例代码_jquery_自学    第369节:jQuery实现列表自动滚动循环滚动展示新闻_jquery    第370节:jquery操作HTML5 的data-*的用法实例分享_jquery_自学    第371节:JQuery Tips相关(1)----关于$.Ready()_jquery    第372节:JQuery EasyUI 加载两次url的原因分析及解决方案_j    第373节:jquery中$(#form :input)与$(#form input)的区别_jquery_自学    第374节:JQuery中使用Ajax赋值给全局变量失败异常的解决方    第375节:通过jquery 获取URL参数并进行转码_jquery    第376节:jQuery实现返回顶部功能适合不支持js的浏览器_j    第377节:推荐10款最热门jQuery UI框架[原创]_jquery    第378节:jQuery CSS()方法改变现有的CSS样式_jquery    第379节:jQuery添加/改变/移除CSS类及判断是否已经存在CS    第380节:使用jQuery设置disabled属性与移除disabled属性_jquer    第381节:简单的jquery左侧导航栏和页面选中效果_jquery_自学    第382节:jquery实现的下拉和收缩效果示例_jquery    第383节:jQuery截取指定长度字符串代码_jquery    第384节:jQuery控制TR显示隐藏的三种常用方法_jquery_自学    第385节:jQuery .tmpl() 用法示例介绍_jquery    第386节:jquery实现在页面加载的时自动为日期插件添加当    第387节:jQuery根据ID获取input、checkbox、radio、select的示例    第388节:jQuery实现的一个tab切换效果内部还嵌有切换_jqu    第389节:用Jquery选择器计算table中的某一列某一行的合计    第390节:jQuery实现的一个自定义Placeholder属性插件_jquery_自    第391节:jquery判断浏览器后退时候弹出消息的方法_jquery    第392节:jQuery判断checkbox是否选中的3种方法_jquery_自学ph    第393节:jquery访问ashx文件示例代码_jquery    第394节:jQuery的animate函数学习记录_jquery    第395节:jQuery中get和post方法传值测试及注意事项_jquery_自    第396节:使用jquery.qrcode生成彩色二维码实例_jquery_自学p    第397节:jquery datatable后台封装数据示例代码_jquery_自学p    第398节:jQuery ajax中文API及教程资料大全    第399节:jquery对象和javascript对象即DOM对象相互转换_jquer    第400节:jquery bind(click)传参让列表中每行绑定一个事件_    第401节:jQuery html()方法使用不了无法显示内容的问题_jq    第402节:JQuery设置获取下拉菜单某个选项的值(比较全)_j    第403节:jquery中each遍历对象和数组示例_jquery    第404节:jQuery-强大的jQuery选择器 (详解)[转]    第405节:Asp.net MVC 中利用jquery datatables 实现数据分页显示功能    第406节:ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据    第407节:jQuery+Asp.Net实现省市二级联动功能的方法    第408节:详解JQuery Ajax 在asp.net中使用总结    第409节:jQuery实现金额录入框    第410节:.net jquery绘制自定义表单源码分享    第411节:Asp.net MVC中使用JQuery插件ajaxFileUpload上传文件    第412节:利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据列表    第413节:ASP.NET MVC中使用jQuery时的浏览器缓存问题详解    第414节:ASP.NET配合jQuery解决跨域调用的问题    第415节:ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意    第416节:asp.net+Ligerui实现grid导出Excel和Word的方法    第417节:利用ASP.NET MVC+EasyUI+SqlServer搭建企业开发框架    第418节:ASP.NET中JQuery+AJAX调用后台    第419节:asp.net实现调用带有输出参数的存储过程实例    第420节:asp.net+js实现批量编码与解码的方法    第421节:Sencha Touch和jQuery Mobile该如何选择?    第422节:前端开发框架选型清单    第423节:为什么服务端获取不到路由哈希部分如vue的#号后面参数    第424节:三谈Iframe自适应高度代码_心得技巧_网页制作    第425节:深入学习.net验证码生成及使用方法    第426节:.net生成验证码    第427节:Asp.Mvc 2.0用户客户端验证实例讲解(3)    第428节:asp.net中js+jquery添加下拉框值和后台获取示例    第429节:jquery提交表单mvc3后台处理示例    第430节:jQuery实现倒计时跳转的例子    第431节:asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码    第432节:asp.net使用jquery模板引擎jtemplates呈现表格    第433节:asp.net使用jQuery获取RadioButtonList成员选中内容和值示例    第434节:asp.net使用jquery实现搜索框默认提示功能    第435节:asp.net使用jQuery Uploadify上传附件示例    第436节:ASP.NET中使用Ajax的方法    第437节:.net mvc页面UI之Jquery博客日历控件实现代码    第438节:UpdatePanel和jQuery不兼容 局部刷新jquery失效    第439节:模拟QQ心情图片上传预览示例    第440节:asp.net+jquery ajax无刷新登录的实现方法    第441节:asp.net中js和jquery调用ashx的不同方法分享    第442节:ajax.net +jquery 无刷新三级联动的实例代码    第443节:asp.net利用Ajax和Jquery在前台向后台传参数并返回值的实例    第444节:基于asp.net下使用jquery实现ajax的解决方法    第445节:浅谈对Jquery+JSON+WebService的使用小结    第446节:PHP Ajax上传文件实例,ajaxfileupload.js - php上传下载    第447节:PHP+Ajax实现文件无刷新上传文件代码 - php上传下载    第448节:PHP判断file框是否已选择文件(支持多文件) - php上    第449节:PHP jQuery ajax无刷新文件下载次数统计 - php上传下    第450节:jquery+php实现导出datatables插件数据到excel的方法    第451节:php+jquery实现无限级目录遍历展示代码    第452节:php 判断是否为ajax请求 - php高级应用    第453节:php ajax.$post实现攒,顶,踩的功能 - php高级应用    第454节:php 实现jquery+ajax 跨域数据调用实例 - php高级应用    第455节:PHP判断ajax请求类型(HTTP_X_REQUESTED_WITH) - php高级应    第456节:php实现input输入框失去焦点自动保存输入框的数据    第457节:PHP批量修改静态html文件编码的例子 - php高级应用    第458节:jquery php百度搜索框智能提示效果 - php高级应用    第459节:jQuery+Ajax+PHP实现“喜欢”评级功能代码 - php高级    第460节:php实现事件监听与触发实例程序 - php高级应用    第461节:PHP jquery ajax实现即时聊天功能 - php高级应用    第462节:php ajax实时输入自动搜索匹配程序代码 - php高级应    第463节:jQuery教程-jQuery动画    第464节:jQuery教程-编写jQuery插件    第465节:jQuery教程-jQuery中的Ajax操作    第466节:jQuery教程-jQuery简介    第467节:jQuery教程-jQuery基本选择器    第468节:jQuery教程-jQuery过滤选择器    第469节:jQuery教程-jQuery表单选择器    第470节:jQuery教程-jQuery包装集    第471节:jQuery教程-jQuery的实用方法介绍    第472节:jQuery教程-jQuery事件模型    第473节:jQuery教程-jQuery的常用事件    第474节:jQuery教程-jQuery事件处理和事件委派    第475节:如何删除css样式    第476节:Asp.Mvc 2.0用户客户端验证实例讲解(3)    第477节:JQuery为用户控件(ASCX)赋值与接口的应用    第478节:Asp.net+jquery+.ashx文件实现分页思路    第479节:ASP.NET中UpdatePanel与jQuery同时使用所遇问题解决    第480节:ASP.NET MVC使用Ajax的辅助的解决方法    第481节:使用ASP.NET MVC 4 Async Action+jQuery实现消息通知机制的实现代码    第482节:jQuery调用WebService返回JSON数据及参数设置注意问题    第483节:JavaScript用JQuery呼叫Server端方法实现代码与参考语法    第484节:Asp.net利用JQuery AJAX实现无刷新评论思路与代码    第485节:前台JS(jquery ajax)调用后台方法实现无刷新级联菜单示例    第486节:asp.net jquery无刷新分页插件(jquery.pagination.js)    第487节:在ashx文件中使用session的解决思路    第488节:jquery中如何获得服务器控件实现思路    第489节:使用Asp.net Mvc3 Razor视图方式扩展JQuery UI Widgets方法介绍    第490节:div弹出层的ajax登录(Jquery版+c#)    第491节:ASP.NET中实现jQuery Validation-Engine的Ajax验证实现代码    第492节:ASP.NET中实现jQuery Validation-Engine的Ajax验证    第493节:asp.net+Ajax校验用户是否存在的实现代码    第494节:jquery.pagination +JSON 动态无刷新分页实现代码    第495节:巧妙使用JQuery Clone 添加多行数据,并更新到数据库的实现代码    第496节:使用jQuery Uploader显示文件上传进度    第497节:Asp.Net平台下的图片在线裁剪功能的实现代码(源码打包)    第498节:jQuery 插件autocomplete自动完成应用(自动补全)(asp.net后台)    第499节:排除JQuery通过HttpGet调用WebService返回Json时“parserror”错误    第500节:在jquery repeater中添加设置日期,下拉,复选框等控件