What does the .end() function do in jQuery?

后端 未结 5 1948
星月不相逢
星月不相逢 2020-12-08 04:23

I have already read this web page http://api.jquery.com/end/ but I am still clueless on what .end() actually does. What is it for and how do you use it?

I am also re

5条回答
  •  旧巷少年郎
    2020-12-08 04:37

    $("body").find("span").css("border", "2px red solid");
    

    vs

    $("body").find("span").end().css("border", "2px red solid");
    

    Execute these statements separately in Firebug console on this exact page, and notice how different the behaviors are. Basically, .end() tells it to go back to body after finding all spans, and apply the border to body, not the spans. If we don't have the .end() there, the jQuery code basically behaves normally and applies the .css() to our span elements inside of body.

    BODY > SPAN > APPLY BORDER TO SPANS
    

    with end() it becomes

    BODY > SPAN > GO BACK TO BODY > APPLY BORDER TO BODY
    

    The find() is a destructive operation, meaning it changes what elements are inside of your jquery objects array.

    $('body') 
    

    our current element is body

    $('body').find('span') 
    

    we used a destructive operation find() which changes our entire objects collection to be populated with spans inside of body, body is no longer in the collection

    $('body').find('span').end() 
    

    because find is a "destructive" operation it reverts back to before we did .find(), basically un-does or ctrl-Z's the last thing that changed our jquery collection.

提交回复
热议问题