问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

请问jQuery是用来干什么的?

发布网友 发布时间:2022-04-24 15:12

我来回答

8个回答

懂视网 时间:2022-05-04 15:43

jQuery的工具方法,其实就是静态方法,源码里面就是通过extend方法,把这些工具方法添加给jQuery构造函数的。 jQuery.extend({ ...... guid: 1, //唯一标识符,跟事件有关。举个例子:function show(){alert(this);}, $("#input1").click(show),$("#input2

jQuery的工具方法,其实就是静态方法,源码里面就是通过extend方法,把这些工具方法添加给jQuery构造函数的。

jQuery.extend({

  ...... 

  guid: 1,

  //唯一标识符,跟事件有关。举个例子:function show(){alert(this);}, $("#input1").click(show),$("#input2").click(function(){$("#input1").off()}),这里的show方法是事件方法,所以通过off取消掉事件绑定,可以很容易找到事件方法show。但是如果把 $("#input1").click(show)改成 $("#input1").click($.proxy(show,window)),这时show不是事件方法,而是普通方法,那么通过off取消的时候,它是怎么找到这个普通方法show的,其实就是通过guid,因为guid会累加,所以是唯一的,因此可以找到。请看下个方法就知道详情了。

  proxy: function( fn, context ) {

    //改变方法(函数)执行的this指向。举例:$.proxy(show,document),想给show传参的话,有两种方式:var fn = $.proxy(show,document,1,2);fn(3,4)。最终show执行时就会变成show(1,2,3,4),proxy返回一个函数,调用fn时,就会执行show方法。
    var tmp, args, proxy;

    if ( typeof context === "string" ) { //这里处理特殊调用情况,比如:$.proxy(obj,"show")(正常写法$.proxy(obj.show,obj)),show方法执行时,this指向的obj,并且show是obj的属性方法.var obj = { show: function(){}}。
      tmp = fn[ context ];
      context = fn;
      fn = tmp;
    }

    if ( !jQuery.isFunction( fn ) ) {
      return undefined;
    }

    args = core_slice.call( arguments, 2 ); //传入的参数,相当于例子的[1,2]
    proxy = function() {
      return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); //把[3,4]和[1,2]合并成[1,2,3,4]
    };

    proxy.guid = fn.guid = fn.guid || jQuery.guid++;

    //第一次时,fn.guid(show.guid)是undefined,proxy.guid = fn.guid = 1,show.guid =1,

    //function() {return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) )}.guid=1,唯一标识,取消绑定时,可以用到。

    return proxy;
  },

  //$().css(),$().attr(),通过参数的不同,实现get/set。参数的个数,以及参数的类型。$("div").css("width"),获得第一个div元素的width,$("div").css("width",100)设置所有的div元素的width。$("div").css({width:100,height:200}),也是设置所有的div元素,尽管只有一个参数,但是类型不一样。JQuery中有很多这种方法,所以统一用access实现。

  access: function( elems, fn, key, value, chainable, emptyGet, raw ) {

    //elems操作的元素,可能是一个集合。fn是一个回调函数(有区别的在回调函数中处理,比如,css设置样式,attr设置属性)。key和value就是属性名和属性值。chainable为true,设置,为false就获取。
    var i = 0,
      length = elems.length,
      bulk = key == null;

    if ( jQuery.type( key ) === "object" ) {//处理这种类型$("div").css({width:100,height:200})
      chainable = true;
      for ( i in key ) {
        jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
      }

    }

    else if ( value !== undefined ) { //处理这种$("div").css("width",100)
      chainable = true;

      if ( !jQuery.isFunction( value ) ) {
        raw = true; //字符串(数字)时
      }

      if ( bulk ) { //如果没有key值
        if ( raw ) { //如果value是字符串(数字)
          fn.call( elems, value ); //调用回调方法
          fn = null; //把回调方法赋为空

        }

        else { //如果是函数,这里面的不用深入理解
          bulk = fn;
          fn = function( elem, key, value ) {
            return bulk.call( jQuery( elem ), value );
          };
        }
      }

      if ( fn ) { //如果没有key值,并且value是字符串(数字),这里就为null,不会执行
        for ( ; i < length; i++ ) {
          fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
        }
      }
    }

    return chainable ? //获取时,chainable为false
        elems : //设置时,chainable为true,直接返回元素,进行后续的链式操作

          bulk ?
            fn.call( elems ) : //没有key值时,就回调
              length ? fn( elems[0], key ) : emptyGet; //有key值时,判断元素有没有元素,有的话就获取第一个元素的key值(属性名的值),没有元素的话,就返回emptyGet。
  },

  now: Date.now, //当前时间距离1970年的毫秒数,相当于(new Date()).getTime()

  //以下方法是处理这种情况的:

  //

$("#div1").get(0).offsetWidth取到的是0,因为它是display:none,不存在DOM树中。$("#div1").width()取到的是100,为啥jQuery可以。因为jQuery会对display:none的元素进行处理,变成

  swap: function( elem, options, callback, args ) { //css的转换,内部使用
    var ret, name,
      old = {};

    for ( name in options ) {

      //保存老样式,插入新样式。这里假设options={width:100px;height:100px;background:red;display:block;visibility:hidden;position:absolute}

      //elem.>
      old[ name ] = elem.style[ name ];
      elem.style[ name ] = options[ name ];
    }

    ret = callback.apply( elem, args || [] );

    //通过插入的新样式来获取元素的css值,callback = function(args){ if(args不是[]) return this[args]},args= offsetWidth;

    for ( name in options ) { //恢复老样式
      elem.style[ name ] = old[ name ];
    }

    return ret;
  }

  ......

})

最后讲一下这个方法:

function isArraylike( obj ) {//判断是否是数组,类数组,带length的json,是的话就返回真
  var length = obj.length,
  type = jQuery.type( obj );

  if ( jQuery.isWindow( obj ) ) { //担心window对象有length属性
    return false;
  }

  if ( obj.nodeType === 1 && length ) {

  //元素节点对象,并且有length属性,返回真。document.getElementsByTagName("div")和body.childNodes都不是这种情况。可能用于内部调用,这里如果有谁知道的,可以告诉我。

    return true;
  }

  return type === "array" || type !== "function" && //不能是函数,因为函数也可能有length属性
    ( length === 0 ||typeof length === "number" && length > 0 && ( length - 1 ) in obj );

    //typeof length === "number" && length > 0 && ( length - 1 ) in obj )处理{0:"a",1:"b",length:2}这种情况。length === 0处理arguments为空的时候,就是不传入函数任何数据,这时函数中的arguments的length为0,但是是类数组。document.getElementsByTagName("div")和body.childNodes也是类数组。
}

加油!

热心网友 时间:2022-05-04 12:51

用处:jquery是基于javascript类库的框架, 它里面提供了许多javascript类库,和一些css样式表的封装, 使用起来比较方便, 简化了用户与浏览器的交互, 提高了系统的性能和开发效率。

jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

扩展资料:

语言特点

1、快速获取文档元素

jQuery的选择机制构建于Css的选择器,它提供了快速查询DOM文档中元素的能力,而且大大强化了JavaScript中获取页面元素的方式。

2、提供漂亮的页面动态效果

jQuery中内置了一系列的动画效果,可以开发出非常漂亮的网页,许多网站都使用jQuery的内置的效果,比如淡入淡出、元素移除等动态特效。

3、创建AJAX无刷新网页

AJAX是异步的JavaScript和ML的简称,可以开发出非常灵敏无刷新的网页,特别是开发服务器端网页时,比如PHP网站,需要往返地与服务器通信,如果不使用AJAX,每次数据更新不得不重新刷新网页,而使用AJAX特效后,可以对页面进行局部刷新,提供动态的效果。

参考资料来源:百度百科--jQuery

热心网友 时间:2022-05-04 14:09

jQuery是一个简洁而快速的JavaScript库,可用于简化事件处理,HTML文档遍历,Ajax交互和动画,以便快速开发网站。

目的是让开发者更容易地在网站上使用JavaScript。它不是一种单独的编程语言,与JavaScript一起工作。使用jQuery,将用更少的资源做更多的事情。

扩展资料

1.JQuery允许开发者使用从CSS1到CSS3几乎所有的选择器,以及JQuery独创的高级而且复杂的选择器,另外还可以加入插件使其支持XPath选择器,甚至开发者可以编写属于自己的选择器。由于JQuery支持选择器这一特性,因此有一定CSS经验的开发人员可以很容易的切入到JQuery的学习中来。

2.JQuery封装了大量常用的DOM操作,使开发者在编写DOM操作相关程序的时候能够得心应手。JQuery轻松地完成各种原本非常复杂的操作,让JavaScript新手也能写出出色的程序。

热心网友 时间:2022-05-04 15:43

jquery是javascript的一个类库,说到底jquery就是javascript
jquery主要是用来简化javascript的各种操作以及解决各种浏览器之间的兼容性
用jquery能办到的用javascript都能办到。

热心网友 时间:2022-05-04 17:35

Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。

热心网友 时间:2022-05-04 19:43

使用jQuery可以很方便的实现页面元素的显示和隐藏,因此也比较容易设计出一个美观大方多层次的导航菜单。

热心网友 时间:2022-05-04 22:07

它就是JS。

你在网页里看到“动”的效果(除了需要把页面刷新的外),其他的都是由它或它可以做到的效果。
但它学习起来比较难,有点像中文里的文言文,需要通过专业的(至少一段专注的摸索后)才能懂,而JQuery就是在它的基础上,把一些效果做好用简单的语法包装(起个名字),你要用时直接调用它(写这个名字),这个效果就能出来。而不用考虑它原来很难懂、难理解的语句,及在各个浏览器里的兼容性、支持度等问题。

现在即使大型的网站也基本用它作为基础用了。乐观点的话,以后由浏览器直接包含这个JS文件,然后你在用时,不用再重新调用(现在要用它需要调用它)。

热心网友 时间:2022-05-05 00:49

jquery是基于javascript类库的框架, 它里面提供了许多javascript类库,和一些css样式表的封装, 使用起来比较方便, 简化了用户与浏览器的交互, 提高了系统的性能和开发效率!
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
男朋友比我小很多,现在他说没什么感觉,我该怎么去维持... 大众朗逸车门漏水到车内是什么原因 老朗逸车门进水完美解决办法 华硕B760m主板字母代表什么意思? 技嘉主板的型号字符各代表什么意思? 中考和高考哪个更难些? 中考跟高考,哪个更难?听别人说,中考有一般人是没考上高中的。甚至有人... 2019深圳企业500强 2019年深圳市百强企业 深圳500强企业名单一览_百度... 平安成立时间 优美的生活经典句子 让人惊艳的优美句子(特别经典的优美短句) 皇帝成长计划,怎么玩啊 要详细的 皇帝成长计划 皇帝成长计划攻略 皇帝成长计划宫正司在哪 皇帝成长计划皇帝总死 皇帝成长计划怎么能让皇帝活的长 皇帝成长计划怎样加魅力 皇帝成长计划,详细攻略。 皇帝成长计划怎么赚钱 皇帝成长计划所有结局 “皇帝成长计划”详细攻略有哪些? 皇帝成长计划2中势力表的作用及影响是什么? 有没有可能把一张面额10元的人民币经过验钞机验出20的数额 股市中集散成庄到底是不是违规的?这个词的定义是什么? 新版五十元人民币,验钞机显示为二十元面额,是咋回事? 全中国的钱加起来大约总共有多少钱? 惊呆了,用打印机打出来的这些假币,为什么能骗过验钞机? 拼多多印钞机在哪里玩? 验钞机什么牌子好: 99版20元的人民币有几种尺寸,为什么有一张比它们小一点,从验钞机出来却显示是5元 jQuery常用属性和方法有哪些 JavaScript和jQuery和java都是怎样的关系? jquery中如何获取和设置属性 jquery属性选择器中属性指的是什么意思 Jquery的属性选择器 jQuery如何获取指定的属性值 在java中jquery是什么?有什么用呢? 怎么通过JQuery 获取 该对象 的 所有 属性和值 学了jquery,是不是可以不用学js了,为什么? jquery判断是否有某个属性 jquery 怎么给标签添加属性? jquery判断元素是否有某个属性 怎样通过添加好友 怎么搜索加好友 通过怎么添加好友 如何搜索添加好友 怎么通过加好友 如何添加别人的在自己的手机上 如何添加好友的? 怎样搜索加好友
  • 焦点

最新推荐

猜你喜欢

热门推荐