2011-10-14 14 views
34

को मैं इस तरह कोड की लाइनें है:

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

यह अच्छी तरह से काम करता है। लेकिन मुझे इन लाइनों को कई बार चलाने की जरूरत है। तो मैं एक समारोह बनाया है और एक समारोह के लिए $ (this) पैरामीटर पारित कर दिया है:

myFunc($(this)); 

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

लेकिन इस तरह से, यह काम नहीं किया।

+1

क्या होगा यदि आप पैरामीटर के रूप में "$ (यह)" के बजाय "यह" का उपयोग करते हैं? – Rob

+2

लिखित रूप में आपके कोड में कुछ भी गलत नहीं है, इसलिए मेरा सुझाव है कि यह कहीं और एक त्रुटि है। आपका क्या मतलब है, "यह काम नहीं किया"? –

+0

"यह काम नहीं किया"? –

उत्तर

45

आप इस लिंक को देख सकते हैं।

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 स्वचालित रूप से उचित संदर्भ सेट के साथ अपने समारोह आह्वान करेंगे।

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

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