结束()函数
Posted
技术标签:
【中文标题】结束()函数【英文标题】:end() function 【发布时间】:2010-09-15 00:13:46 【问题描述】:jQuery 中的end()
函数将元素集恢复到上次破坏性更改之前的状态,因此我可以看到它应该如何使用,但我看过一些代码示例,例如:on alistapart (可能来自旧版本的 jQuery - 这篇文章来自 2006 年) 用.end()
结束了每个语句。例如:
$( 'form.cmxform' ).hide().end();
这有什么影响吗?
我也应该这样做吗?
上面的代码到底返回了什么?
【问题讨论】:
【参考方案1】:end()
什么也没做。这样编码是没有意义的。它将返回$('#myBox')
——这个例子很糟糕。更有趣的是这样的:
$('#myBox').show ().children ('.myClass').hide ().end ().blink ();
这将显示myBox
,隐藏指定的子项,然后使框闪烁。这里还有更多有趣的例子:
http://simonwillison.net/2007/Aug/15/jquery/
如:
$('form#login')
// hide all the labels inside the form with the 'optional' class
.find('label.optional').hide().end()
// add a red border to any password fields in the form
.find('input:password').css('border', '1px solid red').end()
// add a submit handler to the form
.submit(function()
return confirm('Are you sure you want to submit?');
);
【讨论】:
哦,是的,我的意思是,我理解它的用法,我只是想知道代码背后是否有一些推理,例如示例。 是的,我就是这么想的……这几乎就是我从 alistapart (alistapart.com/articles/prettyaccessibleforms) 那里得到的代码。 ALA 通常很擅长他们的技术,所以我想知道我是否遗漏了什么。【参考方案2】:来自jquery doc有一个例子:
$('ul.first').find('.foo')
.css('background-color', 'red')
.end().find('.bar')
.css('background-color', 'green')
.end();
然后是澄清:
最后一个 end() 是不必要的,因为我们会立即丢弃 jQuery 对象。然而,当以这种形式编写代码时,end() 提供了视觉上的对称性和完成感——至少在一些开发人员的眼中,使程序更具可读性,但代价是对性能的轻微影响这是一个额外的函数调用。
【讨论】:
以上是关于结束()函数的主要内容,如果未能解决你的问题,请参考以下文章