动态更改onClick函数参数

QGA*_*QGA 4 javascript jquery

我有这样的事情:

<button id="button1" onClick="someFunc('arg1','arg2')"> </button> 
Run Code Online (Sandbox Code Playgroud)

在JavaScript中是否可以将函数的参数更改为someFunc如下所示:

<button id="button1" onClick="someFunc('somethingDiff1','somethingDiff2')"> </button> 
Run Code Online (Sandbox Code Playgroud)

小智 5

这也可以通过编写类似的内容来完成:

document.getElementById('button1').setAttribute('onclick','thiswhatyouwanttohave');
Run Code Online (Sandbox Code Playgroud)

但文档必须完全加载,或者至少必须存在按钮才能访问 onclick 属性。


Sha*_*ari 5

尝试这个

如果您想在jQuery中尝试

$(document).ready(function(){
   var clickfun = $("#button1").attr("onClick");
   var funname = clickfun.substring(0,clickfun.indexOf("("));       
   $("#button1").attr("onclick",funname+"('somethingDiff1',"+"'somethingDiff2')");
  });
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button1" onClick="someFunc('arg1','arg2')">Button1</button> 
Run Code Online (Sandbox Code Playgroud)

如果要使用JavaScript,请尝试以下操作:-

<script>
  window.onload=function(){
  var clickfun = document.getElementById("button1").getAttribute("onclick");
  var funname = clickfun.substring(0,clickfun.indexOf("("));       
  document.getElementById("button1").setAttribute("onclick",funname+"('somethingDiff1',"+"'somethingDiff2')");    
};
</script>
Run Code Online (Sandbox Code Playgroud)

希望这会帮助你。

  • 太容易了...。我只是做了`$('...')。attr(“ onclick”,“ someFunc('something1','something2')”);`,它确实有效 (2认同)