Javascript 将正确的上下文传递给具有ready函数参数的函数

Javascript 将正确的上下文传递给具有ready函数参数的函数,javascript,jquery,this,Javascript,Jquery,This,我花了一天时间试图找到将正确的上下文传递到removeForm的方法。目标是使用removeForm,当按下时调用该表单。如果要删除包含已单击的的.subform2元素,可以执行以下操作 当您在传递给jQuery的事件回调中时,这个(通常)保存接收事件的元素。因此,您应该更改代码以获得以下内容: $('.remove_2').click(function(e){ e.preventDefault(); removeForm(this) // <-- 'this' will

我花了一天时间试图找到将正确的上下文传递到
removeForm
的方法。目标是使用
removeForm
,当按下

时调用该表单。如果要删除包含已单击的
.subform2
元素,可以执行以下操作

当您在传递给jQuery的事件回调中时,
这个
(通常)保存接收事件的元素。因此,您应该更改代码以获得以下内容:

$('.remove_2').click(function(e){
    e.preventDefault();
    removeForm(this)  // <-- 'this' will refer to $('.remove_2')
});
更新

您应该能够将选择器传递到
removeForm
以标识祖先,如下所示:

function removeForm(anchor) {
    var $removedForm = $(anchor).closest('.subform2');
    $removedForm.remove();
}
function removeForm(el, ancestorSelector) {
    // Do check to ensure ancestorSelector is provided, before using it.
    var $removedForm = $(el).closest(ancestorSelector);
    $removedForm.remove();
}
$('.remove_2').click(function(e){
    e.preventDefault();
    removeForm(this, '.subform2')  // <-- 'this' will refer to $('.remove_2')
});
您可以按如下方式更新对其的称呼:

function removeForm(anchor) {
    var $removedForm = $(anchor).closest('.subform2');
    $removedForm.remove();
}
function removeForm(el, ancestorSelector) {
    // Do check to ensure ancestorSelector is provided, before using it.
    var $removedForm = $(el).closest(ancestorSelector);
    $removedForm.remove();
}
$('.remove_2').click(function(e){
    e.preventDefault();
    removeForm(this, '.subform2')  // <-- 'this' will refer to $('.remove_2')
});
$('.remove_2')。单击(函数(e){
e、 预防默认值();

removeForm(this,'.subform2')//您的问题令人困惑。您说:“我希望将上下文设置为变量
tgsubf
”中包含的类,但您正在执行
$(this).closest(tcl)
$(this).closest(选择器)
获取最接近的祖先,而不是最接近的后代。您可能想打断您的第一句话,详细说明您实际想要实现的目标。@FrankFajardo非常感谢您的好意评论,我已经尝试澄清了这个问题。谢谢Frank,但是我希望能够使用参数来重用removin函数g其他类,我是否仍然可以传递参数而不是硬编码该类?@GM,我的更新是否回答了您在评论中的问题?