请问各位大佬靓仔美女们,为什么下面这段代码运行后,我还没有点击文字,就自动执行了AABBCCD()函数?

zhangchanggong00 2024-02-14 14:40:44

请问为什么下面这段代码运行后,我还没有点击文字,就自动执行了AABBCCD()函数?

<h1 id="222" class="222">0000</h1>
<h2 class="2221">点击文本!</h2>
<script>       
document.getElementsByClassName("2221")[0].onclick = AABBCCD();
function AABBCCD() {
   document.getElementsByClassName("222")[0].innerHTML = "Ooops!";
}
</script>

如果,在AABBCCD()外面添加function(){}包裹,那就点击之后再执行AABBCCD函数,这才正常。

<h1 id="222" class="222">0000</h1>
<h2 class="2221">点击文本!</h2>
<script>       
document.getElementsByClassName("2221")[0].onclick =function(){AABBCCD()};
function AABBCCD() {
   document.getElementsByClassName("222")[0].innerHTML = "Ooops!";
}
</script>

这到底是为什么?

...全文
3626 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1

第一个代码去掉函数名后面的括号,加括号的话表示调用函数。

 document.getElementsByClassName("2221")[0].onclick = AABBCCD;

  • 举报
回复
@太空漫步11 去掉函数名后面括号还真就对了,哥这是什么原理呀
tjficcbw 02-15
  • 举报
回复 1
@zhangchanggong00 script 代码段内的语句是直接执行的,你的这句话,应该放到文本框内 《h2 class="2221" onclick= AABBCCD()&gt;点击文本!&lt;/h2&gt;把前面的书名号变成尖括号
  • 举报
回复
@tjficcbw 好的,谢谢您
  • 打赏
  • 举报
回复 1

球球,大佬们帮帮孩子

69,512

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧