如何使用javascript更改onclick?

mon*_*miw 2 javascript onclick javascript-events

如何使用javascript更改onclick?

https://jsfiddle.net/749rt0m7/1/

我试图使用这段代码,但不行.我能怎么做 ?

    <span  onclick="test_fn('aaa,bbb')" id="xx">edit</span>
    <script>
        document.getElementById('xx').onclick = "test_fn(111,222)";
    </script>
Run Code Online (Sandbox Code Playgroud)

Ale*_*ana 12

这里有几件事情要发生.

首先,test_fn()你的jsfiddle中不是一个函数.您需要定义它才能调用它.

其次,您将onclick属性设置为字符串而不是函数.您必须使用下面的代码将其设置为函数.

document.getElementById('xx').onclick = function() { test_fn(111,222) };
Run Code Online (Sandbox Code Playgroud)

这是一个工作jsfiddle的例子.

UPDATE

看起来我误解了这个问题.如果您真的想要更改onclick属性,请更改HTML显示的内容,您将需要使用setAttribute().所以你的代码将是......

document.getElementById('xx').setAttribute( "onClick", "test_fn('111,222')" );
Run Code Online (Sandbox Code Playgroud)

这是更新的jsfiddle

作为旁注,就像 nnnnnn在原始帖子的评论中所说的那样,使用它时,你通过函数传递1个参数,111,222当你似乎想要传递两个时,该函数就是字符串.如果您希望111作为第一个参数和222第二个参数test_fn(111,222)传递,您可以使用(将参数作为整数test_fn('111','222')传递)或(将参数作为字符串传递)调用该函数