您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年08月28日 09:50

原创 jQuery.end() 函数详解

2993 次浏览 读完需要≈ 9 分钟

内容目录

end()函数用于返回最近一次"破坏性"操作之前的jQuery对象

当前jQuery对象可能是通过调用之前的jQuery对象的特定方法创建的,使用该函数可以返回之前的jQuery对象。

该函数属于jQuery对象(实例)。

语法

jQueryObject.end( )

返回值

end()函数的返回值为jQuery类型,返回最近一次"破坏性"操作之前的jQuery对象。

只要调用jQuery对象的某个方法返回的是一个新创建的jQuery对象,则该操作被视为"过滤"操作或"破坏性"操作。jQuery对象的add()addBack()andSelf()children()closest()contents()eq()filter()find()first()has()last()map()next()nextAll()nextUntil()not()parent()parents()parentsUntil()prev()prevAll()prevUntil()siblings()slice()、 clone()等方法均属于"破坏性"操作。

示例&说明

以下面这段HTML代码为例:

<p id="n1">
    <span id="n2">A
        <span id="n3">B</span>
    </span>
    <span id="n4">C
    	<label id="n5">D</label>    	
	</span>
</p>

以下jQuery示例代码用于演示end()函数的具体用法:

var $p = $("p");
//这是一个破坏性操作,返回一个新的jQuery对象
var $p_span = $p.find("span");
document.writeln( $p_span.end() === $p ); // true

//这不是一个破坏性操作,css()和attr()返回的都是原jQuery对象,并没有创建一个新的jQuery对象
var $me = $p.css("color", "#333").attr("uid", "12");
document.writeln( $me.end() === $p ); // false
// $me和$p是同一个jQuery对象
document.writeln( $me === $p ); // true

var $span = $("span");
// 这是一个破坏性操作,虽然没有过滤掉任何元素,但返回的是一个新的jQuery对象
var $newSpan = $span.not(".foo");
document.writeln( $newSpan.end() === $span ); // true

// 如果之前没有破坏性操作,可能返回包含document的jQuery对象或空的jQuery对象(视具体情况而定)
document.writeln( $("label").end().length ); // 1 (document对象)
document.writeln( $("#n1").end().length ); // 0

运行代码

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论

打开导航菜单