jQuery 工具--测试操作

测试操作

函数列表

函数说明
$.contains()用于判断指定元素内是否包含另一个元素。
$.type()用于确定JavaScript内置对象的类型,并返回小写形式的类型名称。
$.isArray()测试对象是否为数组。
$.isFunction()测试对象是否为函数。
$.isEmptyObject()测试对象是否是空对象(不包含任何属性)。
$.isPlainObject()测试对象是否是纯粹的对象(通过 “{}” 或者 “new Object” 创建的)。
$.isWindow()测试对象是否是窗口(有可能是Frame)。
$.isNumeric()确定它的参数是否是一个数字。
$.isXMLDoc()用于判断一个DOM节点是否位于XML文档中,或者其本身就是XML文档。

函数说明

$.contains():

该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止)。它会清除包括换行符、空格、制表符等常见的空白字符。

该函数属于全局的jQuery对象。

语法
  • jQuery.contains( container, contained)

jQuery 1.4 新增该静态函数。

参数
属性说明
containerElement类型 指定可能包含其他元素的祖辈容器元素。
containedElement类型 指定可能被其他元素包含的后代元素
返回值

jQuery.contains()函数的返回值为Boolean类型,如果指定元素包含另一个元素,则返回true,否则返回false。

示例&说明:

jQuery.contains()仅用于比较两个DOM元素(Element类型,不能是NodeList或其他对象)。它会从contained元素的父元素开始逐级向上查找,判断其是否等于container元素,如果是则返回true,否则返回false。
HTML示例代码:

<div id="n1">
    <p id="n2">
        <span id="n3">CodePlayer</span>
    </p>
</div>
<p id="n4">专注于编程开发技术分享</p>

jQuery示例代码,以演示jQuery.contains()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    document.body.innerHTML += "<br>" + html;
}

var n1 = document.getElementById("n1");
var n2 = document.getElementById("n2");
var n3 = document.getElementById("n3");
var n4 = document.getElementById("n4");
var span = document.getElementsByTagName("span");

// n1包含n2
w( $.contains(n1, n2) ); // true

// n1包含n3
w( $.contains(n1, n3) ); // true

// n1不包含n4
w( $.contains(n1, n4) ); // false

// n1虽然包含span元素(n3),但变量span是NodeList对象,不是Element类型。
w( $.contains(n1, span) ); // false

小知识:
jQuery对象与Dom对象的相互转换:

在jQuery对象中无法使用DOM对象的任何方法。

var domObj = document.getElementById("id"); //DOM对象
var $obj = $("#id"); //jQuery对象;
//jquery对象转换成 dom对象
var cr = $obj [0]; //dom对象 也可写成 var cr=$obj .get(0);
//dom对象转换成jquery对象
var $cr = $(domObj); //转换成jquery对象

$.type():

用于确定JavaScript内置对象的类型,并返回小写形式的类型名称。

JavaScript也自带有一个typeof运算符,可以确定数据的类型。不过,对于绝大多数对象而言,typeof运算符都返回”object”,无法区分具体的类型。jQuery.type()可以更加精确地确定JS内置对象的类型。

例如:对于new Number(5),typeof返回”object”,jQuery.type()返回”number”;对于new Date(),typeof返回”object”,jQuery.type()返回”date”。

该函数属于全局的jQuery对象。

语法
  • jQuery.type(obj )

jQuery 1.4.3 新增该静态函数。

参数
属性说明
obj任意类型 需要确定类型的任意。
返回值

jQuery.type()函数的返回值为String类型,返回指定参数的类型。

示例&说明:

jQuery.type()函数的具体用法:

jQuery.type( undefined ); // "undefined"
jQuery.type( null ); // "null"

jQuery.type( true ); // "boolean"
jQuery.type( new Boolean(true) ); // "boolean"

jQuery.type( 3 ); // "number"
jQuery.type( new Number(3) ); // "number"

jQuery.type( "test" ); // "string"
jQuery.type( new String("test") ); // "string"

jQuery.type( function(){} ); // "function"
jQuery.type( new Function() ); // "function"

jQuery.type( [] ); // "array"
jQuery.type( new Array() ); // "array"

jQuery.type( new Date() ); // "date"

jQuery.type( new Error() ); // "error" // jQuery 1.9 新增支持

jQuery.type( /test/ ); // "regexp"
jQuery.type( new RegExp("\\d+") ); // "regexp"

/* 除上述类型的对象外,其他对象一律返回"object" */

jQuery.type( {} ); // "object"
function User() { }
jQuery.type( new User() ); // "object"

小知识:
js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。


$.isArray():

用于判断指定参数是否是一个数组。

该函数属于全局jQuery对象。

语法
  • jQuery.isArray(object )

jQuery 1.3 新增该静态函数,jQuery 3.2中已废弃

参数
属性说明
object任意类型 需要进行判断的任意值。
返回值

jQuery.isArray()函数的返回值为Boolean类型,如果指定的参数是数组,则返回true,否则返回false。

示例&说明:

jQuery.isArray()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    document.body.innerHTML += "<br/>" + html;
}

w( $.isArray( [ 10, 25, 3 ] ) ); // true
w( $.isArray( new Array() ) ); // true

w( $.isArray( null ) ); // false
w( $.isArray( true ) ); // false
w( $.isArray( { } ) ); // false

var obj = { };
obj[0] = 10;
obj[1] = 25;
obj[2] = 3;
obj.length = 3;
// obj是一个类数组对象,但它仍然不是一个真正的数组
w( $.isArray( obj ) ); // false

$.isFunction():

用于判断指定参数是否是一个函数。
该函数属于全局的jQuery对象。

语法
  • jQuery.isFunction(obj )

jQuery 1.2 新增该静态函数。

参数
属性说明
object任意类型 需要确定类型的任意。

注意:
jQuery 1.3以后,在IE浏览器里,浏览器提供的函数比如’alert’还有 DOM 元素的方法比如 ‘getAttribute’ 将不认为是函数

返回值

jQuery.isFunction()函数的返回值为Boolean类型,如果指定的参数是JS函数对象,则返回true,否则返回false。

示例&说明:

jQuery.isFunction()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    document.body.innerHTML += "<br/>" + html;
}

function foo(){
    alert("CodePlayer");    
}
w( $.isFunction( foo ) ); // true
w( $.isFunction( function(){ } ) ); // true
w( $.isFunction( new Function("x", "y", "return x + y;") ) ); // true


w( $.isFunction( null ) ); // false
w( $.isFunction( true ) ); // false
w( $.isFunction( { } ) ); // false
w( $.isFunction( [ ] ) ); // false

$.isEmptyObject():

用于判断指定参数是否是一个空对象。

所谓”空对象”,即不包括任何可枚举(自定义)的属性。简而言之,就是该对象没有属性可以通过for…in迭代。

该函数属于全局jQuery对象。

语法
  • jQuery.isEmptyObject(object )

jQuery 1.4 新增该静态函数。

jQuery 1.4 中,这个方法既检测对象本身的属性,也检测从原型继承的属性(因此没有使用hasOwnProperty)。

参数
属性说明
object任意类型 需要进行判断的任意值。

注意:该参数应该始终是一个纯粹的JavaScript Object,因为其他类型(例如:DOM元素、原始字符串/数字、宿主对象)可能无法获得跨浏览器的一致结果。要确定一个对象是否是一个纯粹的JavaScript Object,你可以使用$.isPlainObject()方法。

返回值

jQuery.isEmptyObject()函数的返回值为Boolean类型,如果指定的参数是空对象,则返回true,否则返回false。

示例&说明:

jQuery.isEmptyObject()是通过for…in循环来进行判断,其源代码部分如下:

isEmptyObject: function( obj ) {
    var name;
    for ( name in obj ) {
        return false;
    }
    return true;
}

jQuery.isEmptyObject()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    $(document.body).append("<br/>" + html);
}



w( $.isEmptyObject( { } ) ); // true
w( $.isEmptyObject( new Object() ) ); // true
w( $.isEmptyObject( [ 0 ] ) ); // false
w( $.isEmptyObject( { name: "CodePlayer"} ) ); // false
w( $.isEmptyObject( { sayHi: function(){} } ) ); // false
function User(){

}
User.prototype.word = "Hello";
// 自定义的原型对象上的属性也是可枚举的
w( $.isEmptyObject( new User() ) ); // false


/* 尽管在没有为空数组、Function、Number等内置对象添加自定义属性的情况下,它们也是不可枚举的,但是不推荐这么做。因为isEmptyObject()的参数应该始终是一个纯粹的Object */

// 数组中没有元素,也无法通过for...in迭代出属性
w( $.isEmptyObject( [ ] ) ); // true
// Function、Number、String等内置对象也无法通过for...in迭代出属性
w( $.isEmptyObject( function(){ alert("xxx") } ) ); // true

$.isPlainObject():

用于判断指定参数是否是一个纯粹的对象。

所谓”纯粹的对象”,就是该对象是通过”{}”或”new Object”创建的。

该函数属于全局jQuery对象。

语法
  • jQuery.isPlainObject(object )

jQuery 1.4 新增该静态函数。

参数
属性说明
object任意类型 需要进行判断的任意值。

注意:宿主对象(或其它被浏览器宿主环境使用的对象,以完成ECMAScript的执行环境)难以进行跨平台的特性检测。因此,对于这些对象的实例,$.isPlainObject()在不同的浏览器上可能得出不同的结果。

返回值

jQuery.isPlainObject()函数的返回值为Boolean类型,如果指定的参数是纯粹的对象,则返回true,否则返回false。

示例&说明:

jQuery.isPlainObject()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    document.body.innerHTML += "<br/>" + html;
}



w( $.isPlainObject( { } ) ); // true
w( $.isPlainObject( new Object() ) ); // true
w( $.isPlainObject( { name: "CodePlayer"} ) ); // true
w( $.isPlainObject( { sayHi: function(){} } ) ); // true


w( $.isPlainObject( "CodePlayer" ) ); // false
w( $.isPlainObject( true ) ); // false
w( $.isPlainObject( 12 ) ); // false
w( $.isPlainObject( [ ] ) ); // false
w( $.isPlainObject( function(){ } ) ); // false
w( $.isPlainObject( document.location ) ); // false(在IE中返回true)

function Person(){
    this.name = "张三";
}
w( $.isPlainObject( new Person() ) ); // false

$.isWindow():

判断指定参数是否是一个窗口。

“窗口”就是浏览器内置的Window对象。

该函数属于全局jQuery对象。

语法
  • jQuery.isWindow(object )

jQuery 1.4.3 新增该静态函数。

参数
属性说明
object任意类型 需要进行判断的任意值。

注意:该函数是通过Window对象的特性进行判断的,这个特性也可以通过普通对象伪造。但极少遇到这种故意伪造的情况,因此该函数仍然是可用的。

返回值

jQuery.isWindow()函数的返回值为Boolean类型,如果指定的参数是一个窗口,则返回true,否则返回false。

示例&说明:

根据 ECMAScript 标准要求,所有的 JavaScript 解释器都要将Window对象视作全局对象(global),并且global.window = global(其window属性引用自身)。根据该标准,jQuery使用如下代码来判断指定对象是否是一个Window对象。

isWindow: function( obj ) { 
    return obj != null && obj == obj.window;
}

jQuery.isWindow()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    document.body.innerHTML += "<br/>" + html;
}



w( $.isWindow( window ) ); // true


w( $.isWindow( null ) ); // false
w( $.isWindow( true ) ); // false
w( $.isWindow( { } ) ); // false
w( $.isWindow( [ ] ) ); // false

$.isNumeric():

用于判断指定参数是否是一个数字值。

该函数属于全局的jQuery对象。

语法
  • jQuery.isNumeric(value )

jQuery 1.7 新增该静态函数。

参数
属性说明
value任意类型 需要进行判断的任意值
返回值

jQuery.isNumeric()函数的返回值为Boolean类型,如果指定的参数是一个数字值,则返回true,否则返回false。

字符串形式的数字也符合条件。

示例&说明:

jQuery.isNumeric()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    document.body.innerHTML += "<br/>" + html;
}



w( $.isNumeric( 12 ) ); // true
w( $.isNumeric( 12.35 ) ); // true
w( $.isNumeric( "12" ) ); // true
w( $.isNumeric( "12.34" ) ); // true
// 十六进制
w( $.isNumeric( "0x123" ) ); // true
w( $.isNumeric( new Number( 12 ) ) ); // true

w( $.isNumeric( null ) ); // false
w( $.isNumeric( true ) ); // false
w( $.isNumeric( "CodePlayer" ) ); // false
w( $.isNumeric( { } ) ); // false
w( $.isNumeric( [ 0 ] ) ); // false
w( $.isNumeric( NaN ) ); // false

$.isXMLDoc():

用于判断一个DOM节点是否位于XML文档中,或者其本身就是XML文档。

该函数主要用于判断指定文档是一个XML文档还是一个HTML(或XHTML)文档。

该函数属于全局jQuery对象。

语法
  • jQuery.isXMLDoc(node )

jQuery 1.1.4 新增该静态函数。

参数
属性说明
nodeElement类型 需要进行判断的DOM节点。
返回值

jQuery.isXMLDoc()函数的返回值为Boolean类型,如果指定的DOM节点位于XML文档中(或者是一个XML文档),则返回true,否则返回false。

示例&说明:

jQuery.isXMLDoc()函数的具体用法:

//在当前页面内追加换行标签和指定的HTML内容
function w( html ){
    document.body.innerHTML += "<br/>" + html;
}



w( $.isXMLDoc( document ) ); // false
w( $.isXMLDoc( document.body ) ); // false
w( $.isXMLDoc( document.getElementById("btn") ) ); // false


var xmlStr = '<?xml version="1.0" encoding="UTF-8"?>';
xmlStr += '<user>';
xmlStr += '<username>CodePlayer</username>';
xmlStr += '</user>';


var xmlDoc = $.parseXML( xmlStr );
w( $.isXMLDoc( xmlDoc ) ); // true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三知之灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值