如何在javascript的onclick函数之外传递这个关键字

如何在javascript的onclick函数之外传递这个关键字,javascript,jquery,Javascript,Jquery,我需要一个人帮忙。我正在onclick函数中传递这个关键字。如果用户需要在不使用onclick事件的情况下调用相同的函数,那么将如何使用javascript调用它 <input name="optional_0_0_ans" id="optional_0_0_ans" class="form-control firstsec" placeholder="Answer" value="" type="text"> <button type="button" class="btn

我需要一个人帮忙。我正在onclick函数中传递
这个
关键字。如果用户需要在不使用onclick事件的情况下调用相同的函数,那么将如何使用javascript调用它

<input name="optional_0_0_ans" id="optional_0_0_ans" class="form-control firstsec" placeholder="Answer" value="" type="text"> <button type="button" class="btn btn-sm btn-success" style="line-height:12px;" onclick="createNew(this,0,0,1);"><i class="fa fa-plus" aria-hidden="true"></i></button>  

<script>
function createNew(evt,index,childindex,hidevalue){


}
</script>

函数createNew(evt、索引、子索引、hidevalue){
}
在上面的代码中,我在onclick事件中传递
this
关键字。这里假设用户希望在其他地方调用
createNew
函数,并希望传递相同的
this
关键字,然后如何完成。请帮助我

这里假设用户希望在其他地方调用
createNew
函数,并希望传递相同的
this
关键字,然后如何执行

这是不可能的,因为此仅存在于事件处理程序中。处理程序外部不存在“相同的<代码>此”。
我猜你的意思是,他们想要传递相同或相似的值。那么这个的值是多少呢?它是一个DOM元素。他们只需要获取对DOM元素的引用并传递:

var someElement = // get reference to a DOM element
createNew(someElement,0,0,1);

在onclick属性
中,此
引用当前DOM元素。因此,如果您希望实现相同的行为,只需自己获取并解析DOM元素:

var button = document.querySelector('#optional_0_0_ans button');
createNew(button, 0, 0, 3);

您可以使用以下代码执行此操作:

$(".btn-success").on("click", function(){
    someFunction(this, param1, param2,...)
})

其中“.btn success”是一个分配给按钮的类,单击按钮可以调用JavaScript函数。您也可以在选择器中使用id。

是的,您可以,将id添加到元素中将更容易处理

我将id添加到您的按钮元素以进行说明


函数createNew(evt,index,childindex,hidevalue){
警报(evt.type);//单击时发出警报按钮
}
createNew(document.getElementById('btn'),4,5,4)//运行时的警报按钮

您可以执行createNew.call(this[,otherParameter,…])
引用DOM元素,因此它们只会传递对DOM元素的引用:
createNew(someElement,0,0,1)。this关键字应提供与onclick事件相同的属性。此处,该关键字保留按钮对象noy输入字段。是,因为在您的示例中也是如此(在示例中,onclick属性位于按钮上)。但是,您可以通过更改选择器和属性轻松地更改这一点。
<button type="button" class="btn btn-sm btn-success" id="btn" style="line-height:12px;" onclick="createNew(this,0,0,1);"><i class="fa fa-plus" aria-hidden="true"></i></button>  

<script>
function createNew(evt,index,childindex,hidevalue){    
  alert(evt.type);  //alert button when click
}
createNew(document.getElementById('btn'),4,5,4); //alert button when run
</script>