I have lines of code like this:
我有这样的代码行:
$(this).parent().parent().children().each(function(){
// do something
});
It works well. But I need to run these lines multiple times. So I have created a function and pass $(this) parameter to a function:
它运作良好。但我需要多次运行这些行。所以我创建了一个函数并将$(this)参数传递给函数:
myFunc( $(this) );
function myFunc(thisObj) {
thisObj.parent().parent().children().each(function(){
// do something
});
}
But in this way, It didn't work.
但就这样,它没有用。
3 个解决方案
#1
50
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>
#2
9
jQuery will automatically invoke your function with the proper context set.
jQuery将使用适当的上下文集自动调用您的函数。
$('#button').on('click', myFunction);
function myFunction() {
var that = $(this);
console.log(that);
}
#3
0
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);
}
#1
50
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>
#2
9
jQuery will automatically invoke your function with the proper context set.
jQuery将使用适当的上下文集自动调用您的函数。
$('#button').on('click', myFunction);
function myFunction() {
var that = $(this);
console.log(that);
}
#3
0
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);
}