- .add()
- .addBack()
- .addClass()
- .ajaxComplete()
- .after()
- .ajaxError()
- .ajaxSend()
- .ajaxStart()
- .ajaxStop()
- .ajaxSuccess()
- All Selector ("*")
- .andSelf()
- .animate()
- :animated Selector
- .append()
- .appendTo()
- .attr()
- Attribute Contains Prefix Selector [name|="value"]
- Attribute Contains Selector [name*="value"]
- Attribute Contains Word Selector [name~="value"]
- Attribute Ends With Selector [name$="value"]
- Attribute Equals Selector [name="value"]
- Attribute Not Equal Selector [name!="value"]
- Attribute Starts With Selector [name^="value"]
- .before()
- .bind()
- .blur()
- :button Selector
- callbacks.add()
- callbacks.disable()
- callbacks.disabled()
- callbacks.empty()
- callbacks.fire()
- callbacks.fireWith()
- callbacks.fired()
- callbacks.has()
- callbacks.lock()
- callbacks.locked()
- callbacks.remove()
- .change()
- :checkbox Selector
- :checked Selector
- Child Selector ("parent > child")
- .children()
- Class Selector (".class")
- .clearQueue()
- .click()
- .clone()
- .closest()
- :contains() Selector
- .contents()
- .context
- .css()
- .data()
- .dblclick()
- deferred.always()
- deferred.done()
- deferred.fail()
- deferred.isRejected()
- deferred.isResolved()
- deferred.notify()
- deferred.notifyWith()
- deferred.pipe()
- deferred.progress()
- deferred.promise()
- deferred.reject()
- deferred.rejectWith()
- deferred.resolve()
- deferred.resolveWith()
- deferred.state()
- deferred.then()
- .delay()
- .delegate()
- .dequeue()
- Descendant Selector ("ancestor descendant")
- .detach()
- .die()
- :disabled Selector
- .each()
- Element Selector ("element")
- :empty Selector
- .empty()
- :enabled Selector
- .end()
- :eq() Selector
- .eq()
- .error()
- :even Selector
- event.currentTarget
- event.data
- event.delegateTarget
- event.isDefaultPrevented()
- event.isImmediatePropagationStopped()
- event.isPropagationStopped()
- event.metaKey
- event.namespace
- event.pageX
- event.pageY
- event.preventDefault()
- event.relatedTarget
- event.result
- event.stopImmediatePropagation()
- event.stopPropagation()
- event.target
- event.timeStamp
- event.type
- event.which
- .fadeIn()
- .fadeOut()
- .fadeTo()
- .fadeToggle()
- :file Selector
- .filter()
- .find()
- .finish()
- :first-child Selector
- :first-of-type Selector
- :first Selector
- .first()
- :focus Selector
- .focus()
- .focusin()
- .focusout()
- .get()
- :gt() Selector
- Has Attribute Selector [name]
- :has() Selector
- .has()
- .hasClass()
- :header Selector
- .height()
- :hidden Selector
- .hide()
- .hover()
- .html()
- ID Selector ("#id")
- :image Selector
- .innerHeight()
- .index()
- .innerWidth()
- :input Selector
- .insertAfter()
- .insertBefore()
- .is()
- jQuery.Callbacks()
- jQuery.Deferred()
- jQuery.ajax()
- jQuery.ajaxPrefilter()
- jQuery.ajaxSetup()
- jQuery.ajaxTransport()
- jQuery.boxModel
- jQuery.browser
- jQuery.contains()
- jQuery.cssHooks
- jQuery.cssNumber
- jQuery.data()
- jQuery.dequeue()
- jQuery.each()
- jQuery.error()
- jQuery.extend()
- jQuery.fn.extend()
- jQuery.fx.interval
- jQuery.fx.off
- jQuery.get()
- jQuery.getJSON()
- jQuery.getScript()
- jQuery.globalEval()
- jQuery.grep()
- jQuery.hasData()
- jQuery.holdReady()
- jQuery()
- jQuery.inArray()
- jQuery.isArray()
- jQuery.isEmptyObject()
- jQuery.isFunction()
- jQuery.isNumeric()
- jQuery.isPlainObject()
- jQuery.isWindow()
- jQuery.isXMLDoc()
- jQuery.makeArray()
- jQuery.map()
- jQuery.merge()
- jQuery.noConflict()
- jQuery.noop()
- jQuery.now()
- jQuery.param()
- jQuery.parseHTML()
- jQuery.parseJSON()
- jQuery.parseXML()
- jQuery.post()
- jQuery.proxy()
- jQuery.queue()
- jQuery.removeData()
- jQuery.sub()
- jQuery.support
- jQuery.trim()
- jQuery.type()
- jQuery.unique()
- jQuery.when()
- .jquery
- .keydown()
- .keypress()
- .keyup()
- :lang() Selector
- :last-child Selector
- :last-of-type Selector
- :last Selector
- .last()
- .length
- .live()
- .load()
- .load()
- :lt() Selector
- .map()
- .mousedown()
- .mouseenter()
- .mouseleave()
- .mousemove()
- .mouseout()
- .mouseover()
- .mouseup()
- Multiple Attribute Selector [name="value"][name2="value2"]
- Multiple Selector ("selector1, selector2, selectorN")
- Next Adjacent Selector ("prev + next")
- Next Siblings Selector ("prev ~ siblings")
- .next()
- .nextAll()
- .nextUntil()
- :not() Selector
- .not()
- :nth-child() Selector
- :nth-last-child() Selector
- :nth-last-of-type() Selector
- :nth-of-type() Selector
- :odd Selector
- .off()
- .offset()
- .offsetParent()
- .on()
- .one()
- :only-child Selector
- :only-of-type Selector
- .outerHeight()
- .outerWidth()
- :parent Selector
- .parent()
- .parents()
- .parentsUntil()
- :password Selector
- .position()
- .prepend()
- .prependTo()
- .prev()
- .prevAll()
- .prevUntil()
- .promise()
- .prop()
- .pushStack()
- .queue()
- :radio Selector
- .ready()
- .remove()
- .removeAttr()
- .removeClass()
- .removeData()
- .removeProp()
- .replaceAll()
- .replaceWith()
- :reset Selector
- .resize()
- :root Selector
- .scroll()
- .scrollLeft()
- .scrollTop()
- .select()
- :selected Selector
- .selector
- .serialize()
- .serializeArray()
- .show()
- .siblings()
- .size()
- .slice()
- .slideDown()
- .slideToggle()
- .slideUp()
- .stop()
- :submit Selector
- .submit()
- :target Selector
- :text Selector
- .text()
- .toArray()
- .toggle()
- .toggle()
- .toggleClass()
- .trigger()
- .triggerHandler()
- .unbind()
- .undelegate()
- .unload()
- .unwrap()
- .val()
- :visible Selector
- .width()
- .wrap()
- .wrapAll()
- .wrapInner()
.end()
.end()返回: jQuery
描述: 终止在当前链的最新过滤操作,并返回匹配的元素的以前状态。
添加的版本: 1.0.end()
- 这个方法不接受任何参数。
大多数 jQueryDOM遍历 方法来操作 jQuery 对象实例,并创建一个新的对象,匹配一个不同的 DOM 元素集合。当发生这种情况时,实际上是新的元素集合被压入到对象内部维护的栈中。每次过滤方法都会被压入栈中。当我们需要返回到前一个状态时,我们可以使用end()
进行出栈操作,来返回栈中的前一个状态。
假设页面上有几个短的列表
<ul class="first">
<li class="foo">list item 1</li>
<li>list item 2</li>
<li class="bar">list item 3</li>
</ul>
<ul class="second">
<li class="foo">list item 1</li>
<li>list item 2</li>
<li class="bar">list item 3</li>
</ul>
end()
方法主要用于 jQuery 的链式属性中。当没有使用链式用法时,我们通常只是调用变量名上的前一个对象,所以我们不需要操作栈。使用 end()
时,我们可以一次性调用所有需要的方法:
$('ul.first').find('.foo').css('background-color', 'red')
.end().find('.bar').css('background-color', 'green');
在上面的代码中,首先在链式用法中只在第一个列表中查找样式为 foo
的项目,并将其背景色变成红色。然后 end()
返回调用 find()
之前的状态。因此,第二次 find()
将只会查找 <ul class="first">
中的 '.bar',而不是继续在 <li class="foo">
中进行查找,结果是将匹配到的元素的背景色变成绿色。上述代码的最终结果是,第一个列表中的第 1 和第 3 个列表项的背景色有颜色,而第二个列表中的任何项目都没有背景色。
对于一个长的 jQuery 链式写法,可以使用结构块的写法,让其具有很好的可读性,即:将 end()
方法与其对应的过滤方法写在一个嵌套块中,例如:
$('ul.first').find('.foo')
.css('background-color', 'red')
.end().find('.bar')
.css('background-color', 'green')
.end();
最后的end()
是不必要的,我们丢弃紧随其后的jQuery对象。然而,当编写这种形式的代码,end()
提供了可视化的对称性和完整性,至少一些开发者的眼中,更具可读性,这样存在一些性能成本,因为它是一个额外的函数调用。
例子:
Example: 选择所有的段落,在其中查找 span 元素,之后再恢复到选择段落的状态。
<!DOCTYPE html>
<html>
<head>
<style>
p, div { margin:1px; padding:1px; font-weight:bold; font-size:16px; }
div { color:blue; }
b { color:red; }
</style>
<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<p>
Hi there <span>how</span> are you <span>doing</span>?
</p>
<p>
This <span>span</span> is one of
several <span>spans</span> in this
<span>sentence</span>.
</p>
<div>
Tags in jQuery object initially: <b></b>
</div>
<div>
Tags in jQuery object after find: <b></b>
</div>
<div>
Tags in jQuery object after end: <b></b>
</div>
<script>
jQuery.fn.showTags = function (n) {
var tags = this.map(function () { return this.tagName; }) .get().join(", ");
$("b:eq(" + n + ")").text(tags);
return this;
};
$("p").showTags(0)
.find("span")
.showTags(1)
.css("background", "yellow")
.end()
.showTags(2)
.css("font-style", "italic");
</script>
</body>
</html>
Example: Selects all paragraphs, finds span elements inside these, and reverts the selection back to the paragraphs.
<!DOCTYPE html>
<html>
<head>
<style>p { margin:10px; padding:10px; }</style>
<script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
</head>
<body>
<p><span>Hello</span>, how are you?</p>
<script>$("p").find("span").end().css("border", "2px red solid");</script>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论