end()函数

时间:2008-10-03 04:52:00

标签: jquery

jQuery中的end()函数将元素集恢复为最后一次破坏性更改之前的内容,因此我可以看到它应该如何使用,但我已经看到了一些代码示例,例如:{ {3}} (可能来自旧版本的jQuery - 文章来自2006年),它使用.end()完成了每个语句。例如:

$( 'form.cmxform' ).hide().end();
  • 这有什么影响吗?
  • 这是我应该做的吗?
  • 上述代码甚至会返回什么?

2 个答案:

答案 0 :(得分:5)

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?');
    });

答案 1 :(得分:0)

jquery doc开始有一个例子:

$('ul.first').find('.foo')
  .css('background-color', 'red')
.end().find('.bar')
  .css('background-color', 'green')
.end();

之后澄清:

  

最后一个end()是不必要的,因为我们之后立即丢弃了jQuery对象。然而,当代码以这种形式编写时,end()提供了视觉对称性和完成感 - 至少对于一些开发人员来说,至少对于一些开发人员来说,更具可读性,但是以性能轻微打击为代价。这是一个额外的函数调用。