jQuery Passing $(this) to a Function

后端 未结 4 1582
轻奢々
轻奢々 2021-01-30 20:11

I have lines of code like this:

$(this).parent().parent().children().each(function(){
    // do something
});

It works well. But I need to run

相关标签:
4条回答
  • 2021-01-30 20:41

    You can pass the id to the function. With your loop inside the function.

    myFunc(this.id);
    
    function myFunc(thisid) {
        $("#" + thisid).parent().parent().children().each(function(){
            // do something
        });
    }
    

    I would normally do the loop outside the function like below:

    $(this).parent().parent().children().each(function(){
        myFunc(this.id)
    });
    
    function myFunc(thisid) {
    
        // do something example
       $("#" + thisid).html("Yay, i changed the html for element: " + thisid);
    }
    
    0 讨论(0)
  • 2021-01-30 20:42

    jQuery will automatically invoke your function with the proper context set.

    $('#button').on('click', myFunction);
    
    function myFunction() {
        var that = $(this);
        console.log(that);
    }
    
    0 讨论(0)
  • 2021-01-30 20:52

    you can check this link.

    http://jsfiddle.net/zEXrq/38/

    $("#f").click(function() {
      myFunc($(this));
    })
    
    function myFunc(thisObj) {
      thisObj.parent().parent().children().each(function() {
        alert("childs")
      });
    }
    <div id="wordlist">
      <div id="a"></div>
      <div id="b">
        <div id="e"></div>
        <div id="f">child</div>
      </div>
    </div>
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

    0 讨论(0)
  • 2021-01-30 20:54

    If you work in no-conflict mode (i.e. out of global scope), one of the possibilities is:

    jQuery.noConflict();
    
    (function ($) {
        $('#button').on('click', myFunction);
    }(jQuery));
    
    // or
    jQuery('#button').on('click', myFunction);
    
    function myFunction() {
        var that = jQuery(this);
        console.log(that);
    }
    
    0 讨论(0)
提交回复
热议问题