Javascript 将$(this)从函数传递到函数
我在不同的课程上有两个不同的活动:Javascript 将$(this)从函数传递到函数,javascript,jquery,Javascript,Jquery,我在不同的课程上有两个不同的活动: $('.box1').click(function(){ $(this).find('something').css('red') } $('#otherId .box2').change(function(){ $(this).find('something').css('red') } 但我计划将它们拆分为一个函数,以避免重复代码 function getDetails(this){ this.find(".something").css('red
$('.box1').click(function(){
$(this).find('something').css('red')
}
$('#otherId .box2').change(function(){
$(this).find('something').css('red')
}
但我计划将它们拆分为一个函数,以避免重复代码
function getDetails(this){
this.find(".something").css('red');
}
但是以后如何调用该函数呢?将$this传递给函数
$('#otherId .box2').change(function(){
getDetails($(this))
}
这是一个关键字,因此不能是参数名
function getDetails(el) {
el.find(".something").css('red');
}
$('#otherId .box2').change(function () {
getDetails($(this))
})
这是一个关键字,因此不能是参数名
function getDetails(el) {
el.find(".something").css('red');
}
$('#otherId .box2').change(function () {
getDetails($(this))
})
关键字this不能用作参数,但可以在函数体中继续使用它:
function getDetails()
{
$(this).find(".something").css('red');
}
然后这样称呼它:
$('#otherId .box2').change(function() {
getDetails.call(this);
}
另请参见:关键字this不能用作参数,但您可以在函数体中继续使用它:
function getDetails()
{
$(this).find(".something").css('red');
}
然后这样称呼它:
$('#otherId .box2').change(function() {
getDetails.call(this);
}
另请参见:如果要获取输入值,则可以使用类似的方法传递它,然后更改它并在其旁边输出最终值:
var finalOutput;
function getDetails(args) {
args = "Hello World";
return args;
}
$('.box2').change(function(){
var inputValue = $(this).val();
finalOutput = getDetails(inputValue);
$('.box2').after('<b>' + finalOutput + '</b>');
});
以下是一个工作示例:
如果您想获得输入值,则可以使用类似的方法将其传递,然后对其进行更改并在其旁边输出最终值:
var finalOutput;
function getDetails(args) {
args = "Hello World";
return args;
}
$('.box2').change(function(){
var inputValue = $(this).val();
finalOutput = getDetails(inputValue);
$('.box2').after('<b>' + finalOutput + '</b>');
});
以下是一个工作示例:
这比打电话好吗?两者都一样。。。但我更喜欢将其作为参数传递,而不是更改我看到的执行上下文。这也更容易理解。这比使用call好吗?两者都一样。。。但我更喜欢将其作为参数传递,而不是更改我看到的执行上下文。这也更容易理解。@zerkms她就是这么说的。。。刚醒来,无法抗拒-@虫族她就是这么说的。。。刚醒来,无法抗拒-