document.getElementById("myBtn").onclick=function(){displayDate()};解析

首先我们先来看看下面的三个例子,然后我们将这三个例子进行比较(看仔细哦!)
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
</head>
<body>
    <p>点击按钮执行 <em>displayDate()</em> 函数.</p>
    <button onclick="displayDate()">点这里</button>
    <script>
        function displayDate() {
            document.getElementById("demo").innerHTML = Date();
        }
    </script>
    <p id="demo"></p>
</body>
</html>
 
<! DOCTYPE html >
< html >
< head >
    < meta charset = "utf-8" >
    < title > 菜鸟教程(runoob.com) </ title >
</ head >
< head >
</ head >
< body >
    < p > 点击按钮执行 < em > displayDate() </ em > 函数. </ p >
    < button id = "myBtn" > 点这里 </ button >
    < script >
        document . getElementById ( "myBtn" ). onclick = function () { displayDate ()};
        function displayDate () {
            document . getElementById ( "demo" ). innerHTML = Date ();
        }
    < / script >
    < p id = "demo" ></ p >
</ body >
</ html >
 
<! DOCTYPE html >
< html >
< head >
    < meta charset = "utf-8" >
    < title > 菜鸟教程(runoob.com) </ title >
</ head >
< head >
</ head >
< body >
    < p > 点击按钮执行 < em > displayDate() </ em > 函数. </ p >
    < button id = "myBtn" > 点这里 </ button >
    < script >
        var x = function displayDate () {
            document . getElementById ( "demo" ). innerHTML = Date ();
        }
        document . getElementById ( "myBtn" ). onclick = x ;
    < / script >
    < p id = "demo" ></ p >
</ body >
</ html >

相似点:以上代码都可实现同样的功能。

解析:相信认真看过代码的朋友,都能找出三者的不同点。第二个和第三个的区别就是,第二个在 displayDate() 函数外嵌套了一层匿名函数,第三个把 displayDate() 的函数名赋给了变量 x(重点:可以理解为把 displayDate() 函数的 指针(引用) 传给了 x) ,然后再将 x 赋给了document.getElementById  ("myBtn").onclick 事件属性,然后通过点击事件触发 onclick 指向的 displayDate() 函数,就    实现了相同的功能。


细节:你们可以把第一个中 onclick 事件属性机制了解下。

我的理解:onclick 事件属性底层代码是这么实现的,先将赋给  onclick 事件属性的值(字符串"displayDate()")转换成函数,再将函数的指针(引用)传给 onclick 事件属性,然后完成对函数的调用,这样就好理解二和三这么写原因了。

以上纯属个人理解,如果有什么错误的地方,请指出,将万分感激

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下的JavaScript代码来统计这些值为0的个数: ```javascript var sel1 = document.getElementById("s50").value; var sel2 = document.getElementById("s11").value; var sel3 = document.getElementById("s12").value; var sel4 = document.getElementById("s14").value; var sel5 = document.getElementById("s51").value; var sel6 = document.getElementById("s19").value; var sel7 = document.getElementById("s20").value; var sel8 = document.getElementById("s21").value; var sel9 = document.getElementById("s22").value; var sel10 = document.getElementById("s23").value; var sel11 = document.getElementById("s24").value; var sel12 = document.getElementById("s25").value; var sel13 = document.getElementById("s26").value; var sel14 = document.getElementById("s27").value; var sel15 = document.getElementById("s28").value; var sel16 = document.getElementById("s52").value; var sel17 = document.getElementById("s40").value; var sel18 = document.getElementById("s41").value; var sel19 = document.getElementById("s42").value; var sel20 = document.getElementById("s46").value; var sel21 = document.getElementById("s53").value; var count = 0; if (sel1 == 0) { count++; } if (sel2 == 0) { count++; } if (sel3 == 0) { count++; } if (sel4 == 0) { count++; } if (sel5 == 0) { count++; } if (sel6 == 0) { count++; } if (sel7 == 0) { count++; } if (sel8 == 0) { count++; } if (sel9 == 0) { count++; } if (sel10 == 0) { count++; } if (sel11 == 0) { count++; } if (sel12 == 0) { count++; } if (sel13 == 0) { count++; } if (sel14 == 0) { count++; } if (sel15 == 0) { count++; } if (sel16 == 0) { count++; } if (sel17 == 0) { count++; } if (sel18 == 0) { count++; } if (sel19 == 0) { count++; } if (sel20 == 0) { count++; } if (sel21 == 0) { count++; } if (count > 0) { console.log("不合格"); } else { console.log("合格"); } ``` 上述代码会遍历每个选择框的值,通过逐个判断是否为0来统计个数。最后根据个数的结果输出"不合格"或"合格"。你可以将这段代码添加到你的JavaScript文件中,或者直接在浏览器的开发者工具中执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值