2011-10-14 7 views
34

que tienen líneas de código como este:

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

funciona bien. Pero necesito ejecutar estas líneas varias veces. Así que han creado una función y pasar $ (this) parámetro a una función:

myFunc($(this)); 

function myFunc(thisObj) { 
    thisObj.parent().parent().children().each(function(){ 
     // do something 
    }); 
} 

Pero de esta manera, no funcionó.

+1

¿Qué sucede si utiliza "this" en lugar de "$ (this)" como parámetro? – Rob

+2

No hay nada de malo con el código tal como está escrito, por lo que sugiero que es un error en otro lugar. ¿A qué te refieres con "no funcionó"? –

+0

"No funcionó"? –

Respuesta

45

puede consultar este enlace.

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>

7

jQuery invocará automáticamente su función con el contexto adecuado establecido.

$('#button').on('click', myFunction); 

function myFunction() { 
    var that = $(this); 
    console.log(that); 
} 
Cuestiones relacionadas