jquery对对象的操作:
 
检查对象类型:
老式的javascript使用typeOf()操作符,但他是不符合逻辑的,在某些情况下,typeOf()返回的不是一个正确的值,或者返回一个出乎意料的值,如:typeOf(null),它返回object或不是null。
所以jquery提供了一个自定义的.type()方法:
$.type(null);//返回null
$.type([]);//返回array
 
 
.isEmptyObject()方法:
.isEmptyObject()方法用于检查一个对象是否包含任何属性,包括继承的属性,它与对象的类型无关:
 
$.isEmptyObject("");//返回true
$.isEmptyObject([]);//返回true
 
var mailman={};
mailman.letters=100;
$.isEmptyObject(mailman);//返回false
 
与之类似的是.isPlainObject()方法:
.isPlainObject()方法。它用于检测一个对象是否包含任何属性,但它检测的必须是object实例。因此对于该函数,对于空字符检测将返回false。
$.isPlainObject("");//返回false
$.isPalinObject({});//返回true
$.isPalinObject(new obj);//返回true
 
.extend()方法:
extend()方法可以用来合并两个或两个以上的对象。值得注意的是,.extend()方法的功能是将一个或多个对象的属性合并到一个目标对象中。在下面的例子中,obj1将获得obj2、obj3的属性:
var obj1={"1":"property 1"};
var obj2={"2":"property 2"};
var obj3={"3":"property 3"};
$.extend(obj1,obj2,obj3);
alert(obj1["3"]);//显示“3”值的属性
 
关于.extend()方法,有趣的是,可以用它来克隆javascript对象(这与$.clone()方法不同):
var cloneObj=$.extend({},anObj);
 
.extend()还可以接收一个布尔值作为第一个参数,对以执行对象的深度合并,即递归复制。可以使用该方法来实现对象的深度克隆:
var cloneObject=$.extend(true,{},Object;);
 
 
-函数操作:
jquery()有两个用于函数的工具的方法:isFunction()和.noop()。
顾名思义,isFunction()方法时检查对象是否是一个函数。在使用.isFunction()方法时,请确保去掉函数名的圆括号。
在下面的列子中,将.isFunction()函数作为参数传入.isFunction()函数自身。由于它是一个函数,因此返回值必然是true。
 var fn1=$.isFunction({});//返回false
        var fn2=$.isFunction($.isFunction);//返回true
        var fn3=$.isFunction($.isFunction());//返回false,由于圆括号。
        alert(fn1+"-"+fn2+"-"+fn3);
 
.noop()方法时一个存根函数(stub function),它并不执行任何操作。但在某些情况下它是非常有用的,比如我们想把一个空函数作为参数传递时,以便安装一个在默认情况下不进行任何操作的新事件。
 
-数组操作:
与.isObject()方法和.isFunction()方法类似,对于数组也有一个.isArray()。除了检查对象是否是一个数组之外,还可以使用.makeArray()方法将一个类似数组的对象转换为一个真正的数组,但将类似于数组的对象转换为数组,会丢失原对象的所有方法和属性。
    var cloned=$.extend(true,{},$);
        var type1=$.type(cloned);
        alert(type1);//返回Object
        var arr=$.makeArray(type1);
        var type2=$.type(arr);//返回array
        alert(type2);
 
另外一种用于合并数组的方法,.merge()方法。它从第2个数组中获取元素,并将这些元素追加到第一个数组中,并保留两个数组中的原有顺序:
var arr1=["ddf","ppp","vvv"];  
        var arr2=[121,323,434];
        var arrAll=$.merge(arr1,arr2);
        alert(arrAll);//ddf,ppp,vvv,121,323,434
 
.inArray()方法用于检测数组中是否存在某个特定的值,如果找到则返回该值在数组中的索引,如果不存在则返回-1。
.unique()方法的功能是从DOM元素的数组中移除重复的元素:
        【
        <p></p><p></p>
        <p class="dicp"></p>
        <p class="dicp"></p>
        <p class="dicp"></p>
        】
        var ptage=$("p");
           alert(ptage.length);//返回5
           ptage=$.makeArray(ptage);//将其转换为一个数组
 
           var ptg=$.makeArray($(".dicp"));
           ptage=ptage.concat(ptg);//将ptg数组连接到ptage数组中
           alert(ptage.length);//返回8
 
           ptage=$.unique(ptage);//去除ptg中重复元素
           alert(ptage.length);//返回5
 
           var index=$.inArray("6",ptage);
           alert(index);//返回-1
 
遍历数组:for循环遍历,这是旧式的循环语句,jquery提供了.each()方法,可以替代旧式的for循环。
.each()方法可以用于遍历对象以及类似数组的对象和数组,该方法的索引是基于0的,它接收两个参数:第一参数是遍历的结合,第二参数是回调函数。
该回调函数接收两个参数:第一个参数是当前遍历元素在集合中的索引,第二个参数是该元素的值。看下面演示:
var arry=[111,222,333,444,555];
                $.each(arry,function(index,value){
                    value=value*2;
                    alert("index is:"+index+"--new value is:"+value);
                })
 
.map()方法与.each()方法类似,接收两个参数:第一参数是数组对象,第二参数是回调函数。该回调函数是“对每一个元素项进行处理的函数”,该回调函数接收两个参数,第一参数是当前元素的值,第二个元素是当前元素在数组中的索引。
 var array=[2322323,445445,65665,76];
                alert(array);
                var newarr=$.map(array,function(value,index){
                    return Math.sqrt(value).toFixed(4);//toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
                })
                alert(newarr);
 
数据结构:
队列是一直先进先出的数据结构,队列总是将元素添加到队列的尾部,移除元素时总是从队列的头部开始。在jq中使用$.queue()来维护一个函数的队列。默认的函数队列是fx,他是一个具有标准功能的队列。在fx的上下文中,队列的功能是显而易见的。
$("#anmate").sildeUp().fadeIn();//简单的动画队列
 
$.queue队列支持push和pop操作。要从队列中移除所有函数,可以使用.clearQueue()方法。使用.dequeue()方法可以从队列中移除一个函数,并执行它。
$("#anmate").show("slow");
      $("#anmate").queue(function(){
          $(this).animate({"width":"+=400"},1000);
          $(this).dequeue();//从列队中弹出一个函数并执行它
      })
 
字符串:
js中包含了一种强大的机制,可以通过正则表达式来处理字符串,但js中内置的String对象并不包含.trim()方法,在下列代码中,.trim()方法用于移除字符串首尾的空格。
var par1=" 欢迎来到我们伟大的国度        ";
                var par2="    -中国            ";
                var par=par1+par2;
                alert(par);
                 var pars=$.trim(par1)+$.trim(par2);
                 alert(pars);
 
数据:ajax(后章节讲)
 
其他有用的工具方法:
 
.contains()方法用于检查一个DOM节点是不是另外一个节点的子节点,该方法接收两个参数,第一个参数是容器节点,第二个参数是要检查的目标节点,由于jq包装器返回的是一个类似于数组的对象,因此要引用实际的元素,使用索引值来引用。
$.contains($("head")[0],$("title")[0]);//返回true
 
.isWindow()方法用于判断当前窗口是否window窗口,如在使用iframe的情形下,在某个操作中,我们可能要区分iframe和浏览器的窗口,就可以用.isWindow()方法实现此功能。
【<iframe src="" id="frame"></iframe>】
var frmWindow=$("#frame")[0];
$.isWindow(frmWindow);//返回false
$.isWindow(window);//返回true
 
$.now()用于获取当前时间,他是(new Date).getTime()方法的一个快捷方式,显然使用$.now()非常简洁
 
.support()是jq检测浏览器特性(浏览器所支持的特性)的方法,用于取代jq低版本中的$.browser()方法。
一个很好的例子是:if($.support.ajax){},
他可以检测浏览器是否支持Ajax请求(亦称为创建XMLHttpRequest对象)
 
.globalEval()方法:
//在所有的DOM加载完成之后,创建一个变量x并把它的值初始化为0
$(function(){
  eval("var x=0;");
})
eval()方法执行的“上下文”并不是全局,而是局部。有时我们希望把求值的语句放在全局的“上下文”中,例如加载一个外部javascript文件时,我们就要用到.globalEval():
//在全局“上下文”中创建变量
$(function(){
  globalEval("var x=0;");
})
 
.ready()方法用于注册处理程序,一旦问道的所有DOM元素加载完毕,就执行该处理程序代码,不必等待页面所有元素(图片flash等)加载完毕。.ready()方法接收一个函数作为参数。
 
 

jquery核心基础的更多相关文章

  1. jQuery之基础核心(demo)

    jQuery之基础核心     作者的热门手记 jQuery之基础核心(demo)   本文主要简单的介绍下jQuery一些基础核心,大致了解jQuery使用模式.适用于有HTML.CSS.javas ...

  2. 第一百六十三节,jQuery,基础核心

    jQuery,基础核心 一.代码风格 在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号“$”来起 始的.而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所 ...

  3. 第一百六十六节,jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度、偏移、滚动条

    jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度.偏移.滚动条 学习要点: 1.DOM 简介 2.设置元素及内容 3.元素属性操作 4.元素样式操作 ...

  4. 【学习笔记】jQuery的基础学习

    [学习笔记]jQuery的基础学习 新建 模板 小书匠  什么是jQuery对象? jQuery 对象就是通过jQuery包装DOM对象后产生的对象.jQuery 对象是 jQuery 独有的. 如果 ...

  5. [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用

    [DOM Event Learning] Section 3 jQuery事件处理基础 on(),off()和one()方法使用   jQuery提供了简单的方法来向选择器(对应页面上的元素)绑定事件 ...

  6. jQuery 插件基础

    jQuery 插件基础 翻译 How to Create a Basic Plugin 如果你需要在 jQuery 选择器上执行一系列重复操作, 这时候你需要编写 jQuery 插件. jQuery ...

  7. Androd核心基础01

    Androd核心基础01包含的主要内容如下 Android版本简介 Android体系结构 JVM和DVM的区别 常见adb命令操作 Android工程目录结构 点击事件的四种形式 电话拨号器Demo ...

  8. jquery插件开发基础入门

    jquery插件开发基础入门 入门 编写一个jquery插件开始于给jquery.fn加入新的功能属性,此处添加的对象属性的名称就是你的插件名称 jQuery.fn,myPlugin = functi ...

  9. jQuery官方基础教程笔记(转载)

    本文转载于阮一峰的博文,内容基础,结构清晰,是jquery入门不可多得的资料,非常好,赞一个. 阮一峰:jQuery官方基础教程笔记 jQuery是目前使用最广泛的javascript函数库. 据统计 ...

随机推荐

  1. linux 下安装编译配置 QT

    注: 1,自己 make qt-everywhere-opensource-src s时,在./configure前主动装好以下3个 sudo apt-get install libX11-dev l ...

  2. 笔记:VSCODE 在 WSL 开发时不显示代码差异问题

    笔记:VSCODE 在 WSL 开发时不显示代码差异问题 这个好像和 VSCODE 关系不大,主要是因为 WSL 里使用了软链接接,导致无法显示差异. 因为毕竟是软链接,所以在系统文件中会导致无法识别 ...

  3. 使用UITextView的dataDetectorTypes实现超链接需要注意的事项!

    项目中需要在UITextView上识别URL,手机号码.邮箱地址等等信息.那么就用到了它的dataDetectorTypes属性.我的UITextView加在UITableViewCell上面的,当单 ...

  4. maven 标签: 项目管理软件 2016-09-11 22:29 323人阅读 评论(24) 收藏

    开始接触itoo的java项目之后,也就开始接触maven,搭建环境中有一个步骤是配置maven和jboss,当时知道jboss是用来部署我们的项目的,但是maven就只知道一个更新maven,那么, ...

  5. 【NS2】ubuntu安装和同时使用不同版本的ns2(转载)

    有时候我们可能会遇到要同时安装两个ns版本的问题,比如我研究wimax/802.16,因为协议太复杂,用的是长庚大学和nist的wimax补丁.长庚大学的wimax补丁是在ns2.29下开发的,nis ...

  6. Java“类”的内存分配_case1

  7. oracle函数 TO_DATE(X[,c2[,c3]])

    [功能]将字符串X转化为日期型 [参数]c2,c3,字符型,参照to_char() [返回]字符串 如果x格式为日期型(date)格式时,则相同表达:date x 如果x格式为日期时间型(timest ...

  8. Spring IoC 使用详解

    在Spring中,依赖注入(DI)模式实现了控制反转(IoC)原理.让我们通过一个例子来帮助理解依赖注入.我们先看到java版的例子,然后在此基础上加上spring的功能.就例子而言,是相当地简单.Q ...

  9. 2019-2-24-VisualStudio-过滤输出窗口文本

    title author date CreateTime categories VisualStudio 过滤输出窗口文本 lindexi 2019-2-24 11:10:7 +0800 2019-0 ...

  10. HDFS 通信接口