JQuery_2.1.0_日记 2014-5.1

JQuery工具方法.

(1)$.isNumeric(obj)

此方法判断传入的对象是否是一个数字或者可以转换为数字.

isNumeric: function(
obj ) {

// parseFloat NaNs numeric-cast false positives (null|true|false|"")

// ...but misinterprets leading-number strings, particularly
hex literals ("0x...")

// subtraction forces infinities to NaN

return obj
- parseFloat( obj ) >= 0;

},

用‘-‘号先将obj转换为数字,这么做是因为如果传入的字符串中含有非数字字符,那么obj将被转换为NaN,isNumeric将返回false.

alert( ‘55a‘-0) //NaN

注意:js的原生方法parseFloat在处理16进制字符串时会出现转换错误,他会取16进制的标志0x的0.....

var f = parseFloat(‘0xAAAA‘ ,
2);

alert(f); //0

Test_Script

var obj = {toString: function(){

return ‘6‘ ;

}};

var f = $.isNumeric(obj);

alert(f);//true

(2)isPlainObject(obj)

此方法判断传入的对象是否是‘纯净‘的对象,即使用字面量{},或new Object()创建的对象.

Test_Script

function Person(name, age) {

this .name
= name;

this .age
= age;

};

var p = $.isPlainObject( new Person());

alert(p); //false

alert($.isPlainObject({})); //true

alert($.isPlainObject(document.getElementById( ‘div1‘))); //false

isPlainObject(obj)源码

isPlainObject: function(
obj ) {

//不是object或者是DOM元素或是window返回false

if (
jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow(
obj ) ) {

return false ;

}

// Support: Firefox <20

// The try/catch suppresses exceptions
thrown when attempting to access

// the "constructor" property of certain
host objects, ie. |window.location|

// https://bugzilla.mozilla.org/show_bug.cgi?id=814622

try {

//是自定义对象返回false

//判断自定义对象的依据是如果isPrototypeOf方法是从{}的原型对象中继承来的那么便是自定义对象

if (
obj.constructor &&

!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" )
) {

return false ;

}

catch (
e ) {

return false ;

}

// If the function hasn‘t returned
already, we‘re confident that

// |obj |
is a plain object, created by {} or constructed with new Object

return true ;

},

JQuery_2.1.0_日记 2014-5.1

时间: 2024-10-10 17:01:12

JQuery_2.1.0_日记 2014-5.1的相关文章

JQuery_2.1.0_日记 5.2

$.方法 (1)$.merge(first, second) 合并两个数组或类数组,将第二个数组添加到第一个数组的末尾 (2)$.grep(elems, callback, invert) 使用callback对elems进行过滤,如果invert设置为true.则返回保留callback返回值为false的元素数组,如果invert设置为false则返回callback返回值为true的元素数组. Test_Script var arr = ['a' , 'b' , 'c' ] arr = $

JQuery_2.1.0_日记 5.4 Sizzle选择器(二)

(1) whitespace = "[\\x20\\t\\r\\n\\f]"; 匹配css3中空白符. \x20:空格;\t水平制表符(tab);\r\n回车换行\f换页符 (2) characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+" 匹配\后任意字符,字母或数字或-,ascii值非\00-\xa0范围内的字符 (3) identifier = characterEncoding.replace( "

JQuery_2.1.0_日记 5.4 Sizzle选择器(一) 正则中那些\\\\和\\

Sizzle中恐怖的正则. 字面量的正则也许还好理解,那么由字符串编译而成的正则呢. \\和\\\\ 由字符'\\\\'编译而成的正则是/\\/,第一个\转义第两个\,所以其匹配一个\字符(这个\字符是代表字符本身) Test_Script var s = '\\' ; alert(s); // '\' var rs = '\\\\' ; var matches = s.match(new RegExp(rs)); alert(matches[0]) // '\' 由字符串'\\3'编译而成的正

JQuery_2.1.0_日记 5.5 Sizzle选择器(三)

function Sizzle( selector, context, results, seed ) { var match, elem, m, nodeType, // QSA vars i, groups, old, nid, newContext, newSelector; if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { setDocument( context );

JQuery_2.1.0_日记 5.8 Sizzle选择器(四)

Sizzle( selector, context, results, seed )的关键步骤 1,传入的context对应的context和当前document是否一致,不一致调用setDocument()重新设置document,用于frame的情况. 2,如果context为空修正context为document 3,selector如果不是字符串或者context不是Element或Document直接返回空数组. 4,如果文档是HTML并且未传入过滤结果集seed,尝试用原生方法get

JQuery_2.1.0_日记 4.29 $.extend

因为在JQuery一切皆JQuery,所以JQuery没有EXT那么恐怖的继承体系,比起EXT的Ext.extends(),$.extend()函数还是很好理解的,只是把一个对象的属性和方法添加到目标对象上.刚出生的JQuery是很弱小的,JQuery源码后面和我们自己扩展都是通过$.extend()函数. Test_Html <body> <div id= "div1">div1</div ><div id= "div2"

OpenGL学习日记-2014.12.21--光照

o(╯□╰)o深患中度拖延症,也是从开始写这篇笔记到结束居然用了一个月...虽然中间是发生了不少事,不过明明就有无数机会可以完成,就是拖着没写代码,各种借口...面对如此拖延症该如何是好QAQ 正文: 突然觉得这些日记写着写着就没什么意思...只是简单梳理一下书中的内容,没经过很多的思考,可不写心里更虚,怕自己几天就把看的书忘了.对于很多概念,都由于没有好好去写代码验证,而理解流于表面.对于光照这章也是下决心细细琢磨一番(现在才下的决心o(╯□╰)o),毕竟这很重要. 一.光照和颜色密切相关,光

米的建站日记(2014年12月5日)

原来日志不是随便就能发布在首页的额,要精品的才行啊,我以前都不知道.像我这种记流水账似的日记不出意外地被下了. 我要努力学习,向大牛看齐.!~ 言归正传,今天做的功能如下图↓ 音乐播放器是网上找来的插件,目前有点小问题,音乐进度条应该是有一个javascript的定时器控制的,但是我单击导航条的时候,不是页面跳转,而是用jQuery的load方法直接加载了html进来,所以当第二次点音乐的时候,音乐的进度条就会出现问题,这个问题还没解决,我要想办法在单击音乐的时候清除掉那个定时器,这样应该就不会

米的建站日记(2014年12月9日)

后台框架准备用struts2.2.3 + spring3.1.0 + mybatis3.1.0 这是在网上找到的一位大牛的demo http://blog.csdn.net/afgasdg/article/details/7392367 额,自己找太麻烦了,就用他的吧 数据库使用mongodb,这个我从来没用过,关系型数据库以前倒是用过,暂且边学边做把.~ ~ 各种jar包,js库,现在加起来快22M了呢. 奇怪,为毛项目启动就报错,我想应该是spring的配置文件还没有和数据库连上,明天准备看