2
<p id="specialp">some content</p>
<script>
document.getElementById('specialp').onclick=alert('clicked');
</script>
私はJavaScriptを使い始めました。ページが読み込まれたときに警告が表示される理由はわかりませんが、その段落をクリックしたときは表示されません。onclickイベント - JavaScriptがonloadを実行する理由
私はインラインそれを置くとき、期待どおりハンドラは次のように、作品:
<p id="specialp" onclick="alert('clicked')" >some content</p>
alert()関数自体はありませんか?これは、何らかの形でalert()がtrueを返すと、このアプローチがうまくいくことを意味しますか? さらに、ページが読み込まれた後になぜ実行されるのですか? – Atheus
'alert'は関数ですが、あなたはその関数を代入していないので、onclickオブジェクトに式' alert( 'clicked')を代入しています。式は代入の一部として評価されます。あなたがしたことは、技術的には 'var x = 4 + 2'と変わりありません。スクリプトは読み込み時に実行され、 'x'に6を割り当てます。後で' x'を使用するときには割り当てません。 – Tejs
関数内の要素の属性を使いたい場合、その関数への引数にオブジェクトを渡すにはどうすればいいでしょうか?私はページのすべての要素にこれを使用しているので、getElementById()関数を使用することはできません。 – Atheus