jquery链式,jquery链式操作原理

jQuery的优势?

jQuery的优势:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网页空间、营销软件、网站建设、融安网站维护、网站推广。

1、轻量级。jQuery非常轻巧,采用UglifyJS()压缩后,大小保持在30KB左右。

2、强大的选择器。

允许开发者使用从CSS1-CSS3几乎所有的选择器,以及jQuery独创的高级而复杂的选择权。

3、出色的DOM操作的封装。

jQuery封装了大量常用的DOM操作,使开发者在编写DOM操作相关程序的时候,更得心应手。

4、可靠的事件处理机制

5、完善的Ajax

jQuery将所有的Ajax操作封装到一个函数$.ajax()里,使得开发者处理Ajax的时候能够专心处理业务逻辑而无需关心复杂的浏览器兼容性和XMLHttpRequest对象的创建和使用的问题。

6、不污染顶级变量。

7、出色的浏览器兼容性

8、链式操作方式

对发生在同一个jQuery对象上的操作,可以直接连写而无重复获取对象。

9、隐式迭代

当想找到带有“.myclass”类的全部元素,并将其隐藏,无需循环遍历每一个返回的元素。

10、行为层与结构层的分离

开发者可以使用jQuery选择器选中元素,然后直接给元素添加事件。使各个方面的开发人员各司其职,互不干涉。

11、丰富的插件支持

12、完善的文档

13、开源

jQuery的链式操作是如何实现的

return this;//返回对象自身。

例子:

function Test() {

var self = this;

self.testStr = 'My name is ';

self.name = function( name ) {

self.testStr += name +' ';

return self;

};

self.age = function( age ) {

self.testStr += '.I m ' + age +' years old.'

return self;

};

self.end = function() {

return self.testStr;

};

}

var setProfile = new Test();

//然后就可以进行链式操作了。

console.log(setProfile.name('Steve').age(22).end());//

直接复制在控制台输入,就可以进行调试了

jquery如何实现一个表格的筛选,也就是按条件查找筛选

1、首先新建html文档,向下查找兄弟标签:.next()。

2、jquery支持链式操作,向下查找兄弟标签的兄弟标签:.next().next()。

3、接着向下查找所有兄弟标签:nextAll(),向下查找一直找到某个条件为止:nextUntil('条件')。

4、向上查找兄弟标签:.prev(),向上查找所有兄弟标签:prevAll(),向上查找一直找到某个条件为止:prevUntil('条件')。

5、最后查找父标签:parent(),查找所有父标签:parents(),如果没有人拦着,会一直找找到最上面的父标签(没什么用),条件满足时停止查找:parentsUntil('body') 。

JQuery的链式编程,隐式迭代是啥意思

链式编程,隐式迭代是jQuery的一个特性,它支持以链条的形式,不用显示的迭代多层数据。

举个列子:

//普通做法是这样的

obj.name

=

'小明';

obj.age

=

155;

//链式编程是这样的。

obj.name('小明').age(15);

jquery选择器$("...")返回的是数组,为什么还能继续练式操作$("...").方法 ?

1、jquery选择器$('selector')返回的不是数组,而是封装好的jquery对象。但这个对象有一个特别的地方,就是查询到的节点被以下标为属性,添加到了jquery对象上,所以它看起来像数组,因为它存在一些属性是数字;

2、jquery对象有哪些属性和方法?

我们可以理解,$('selector')返回了一个对象obj,obj[0]....obj[i]总是返回查询到的第i个节点。除此之外,jquery对象还被通过prototype添加了一些方法,即:

jQuery.prototype.each = function(){}

jQuery.prototype.hasClass = function(){}

jQuery.prototype.hide = function(){}

jQuery.prototype.css = function(){}

jQuery.prototype.attr = function(){}

等等。这样的话,$('selector')返回的对象就可以调用这些方法,比如obj.attr('name')、obj.css('color', 'red')。

3、jquery方法如何处理多个节点?

实际上,以上诸如hide、css、attr等方法,在jquery内部都是通过循环来处理各个节点的。但是,如果是要获取节点属性,比如obj.attr('name'),显然这个只能返回一个字符串,所以类似的方法都是获取节点集合中的第一个节点的属性。也就是说,虽然返回的节点很多,但只有第一个会被处理。

4、为什么jquery可以链式调用?

在jquery中,很多同名的方法通过参数个数的不同实现不同的功能,比如css方法,如果传一个参数则表示获取css属性;如果传两个参数,则表示给节点添加某个属性,并赋值为第二个参数。attr、width等也是这样的处理。对于方法的返回值,除了获取属性值、获取css值等需要返回实际值的方法外,当css方法、attr方法表示为为节点添加属性、css样式时,是不需要返回值的,但jquery让这些方法返回了this,也就是返回了调用者自身,所以可以链式调用。


分享文章:jquery链式,jquery链式操作原理
网站URL:http://myzitong.com/article/hodegg.html