Javascript onclick属性与脚本中的onclick

Javascript onclick属性与脚本中的onclick,javascript,jquery,html,onclick,Javascript,Jquery,Html,Onclick,为什么不同 document.getElementById('click')。onclick=a.replaceChild(c,b)--在我不单击按钮的情况下替换元素 但是onclick=“a.replaceChild(c,b)”---仅在单击按钮后替换元素 <div id="container"> <p id="welcome">no greetings yet</p> <p id="products">oreo ice-cream</p&

为什么不同

document.getElementById('click')。onclick=a.replaceChild(c,b)--在我不单击按钮的情况下替换元素

但是onclick=“a.replaceChild(c,b)”---仅在单击按钮后替换元素

<div id="container">
<p id="welcome">no greetings yet</p>
<p id="products">oreo ice-cream</p>
</div>

<button id="click" **onclick="a.replaceChild(c,b)"**>CHANGE</button>

    <script>

        var a = document.getElementById('container');

        var b = document.getElementById('welcome');

        var c = document.createElement('h2');
        c.id = 'new';
        c.innerHTML = "WELCOME";

        **document.getElementById('click').onclick = a.replaceChild(c,b);**

    </script>

还没有问候

奥利奥冰淇淋

改变 var a=document.getElementById('container'); var b=document.getElementById('welcome'); var c=document.createElement('h2'); c、 id='新'; c、 innerHTML=“欢迎”; **document.getElementById('click').onclick=a.replaceChild(c,b)**
您不包括括号:您需要分配一个无参数函数,如
document.getElementById('foo')=bar,而不是像
bar()

您现在分配它的方式实际上运行它,这意味着您分配的是该函数的返回值,而不是它的名称

参数使它比仅仅命名没有括号的函数稍微复杂一些

document.getElementById(“单击”).onclick=function(c,b){返回a.replacechild(c,b);}

这会满足你的要求

如果您对非纯基本javascript的解决方案感兴趣,jQuery的
.click()
是一个不错的选择。另一种可能是。document.getElementById('click').onclick“只是在该行运行时返回onclick状态。可能在页面加载时

您要做的是添加一个将侦听.onclick状态中的更改的。然后用它调用你的函数


这就是onClick属性所做的。通常建议使用事件侦听器,以便将内容与JS逻辑清楚地分开

因为您调用了该方法,并且它返回的内容被分配给事件侦听器……这里什么是
onclick=“a.replaceChild(c,b)
replaceChild()
是一个在container div(
a
)上调用的javascript函数。它将
b
替换为
c
,意思是

“>..

替换为
..
可能的重复项此选项是否回答了您的问题?