如何使用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>
如何使用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>
这里有几件事情需要处理。
首先,在您的jsfiddle中,test_fn()
不是一个函数。您需要定义它以便它能被调用。
其次,您将onclick属性设置为字符串而不是函数。您需要使用以下代码将其设置为函数。
document.getElementById('xx').onclick = function() { test_fn(111,222) };
这是一个可运行的JSFiddle示例的例子。
更新
看起来我误解了问题。如果您实际上想要更改onclick属性,也就是更改HTML显示的内容,您需要使用setAttribute()
。所以你的代码将会是...
document.getElementById('xx').setAttribute( "onClick", "test_fn('111,222')" );
另外提一下,就像原帖中 nnnnnn
在评论中提到的那样,使用此方法时,您正在通过函数传递一个参数,即字符串111,222
,但似乎您可能想要传递两个参数。如果您想将111
作为第一个参数,而222
作为第二个参数,则可以使用test_fn(111,222)
(将参数作为整数传递)或者test_fn('111','222')
(将参数作为字符串传递)来调用该函数。
onclick="test_fn('aaa,bbb')"
更改为 onclick="test_fn('111,222')"
。 - mongkon mamiwdocument.getElementById('xx').onclick = function() {
test_fn(111, 222);
};
在HTML中设置onclick
时,请使用字符串。在通过JS设置时,请使用函数。
onclick="test_fn('aaa,bbb')"
更改为 onclick="test_fn('111,222')"
。 - mongkon mamiwid="my-span"
从 onclick="alert('foo')"
更改为 onclick="alert('baz')"
,但仍然无法正常工作。 - mongkon mamiwonclick
设置为一个函数,该函数运行你的代码 test_fn('111,222')
:<script>
document.getElementById('xx').onclick = function() { test_fn('111,222'); }
</script>
onclick="test_fn('aaa,bbb')"
更改为 onclick="test_fn('111,222')"
。 - mongkon mamiwonclick
需要是一个函数。 - hackerrdave.onclick
不会更改实时DOM中的属性。为了做到这一点,您需要使用setAttribute
函数。 - scorgn我看不到你在哪里定义了函数test_fn
,你在html和js中都将函数挂钩到元素onclick
上..只需要一个,而且你需要实际定义这个函数
<span id="xx">edit</span>
<!-- or .. not both , they are doing pretty much the same thing-->
<script>
document.getElementById('xx').onclick = function(){
console.log('clicked')
}
</script>
现在你需要定义test_fn
,它将在单击元素时被调用。
function test_fn(arg1 , arg2){
condole.log(arg1 , arg2)
}
onclick
版本传递一个参数,而JS脚本版本传递两个参数。id="xx"
仍然是 onclick="test_fn('aaa,bbb')"
,而没有更改为 onclick="test_fn('111,222')"
。 - mongkon mamiw