window.onload()方法中代码顺序

本文探讨了JavaScript中window.onload方法内代码顺序的错误示例,指出错误的顺序导致循环内容在按钮被点击前执行,而预期的弹出框并未显示。纠正的方法是将获取按钮元素的代码放在fn3()函数之前,确保正确的执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看错误的代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>通过document获取数据or赋值</title>
    <style type="text/css">
        input{margin: 10px}
    </style>
    <script type="text/javascript">
        window.onload = function () {
            function fn3() {
                var inputElements = document.getElementsByTagName("input");
                for(i=0;i<inputElements.length;i++){
                    alert(inputElements[i].value);
                }
            }
            var nameButton = document.getElementById("nameButton");
            nameButton.onclick = fn3;
        }
    </script>
</head>
<body>&emsp;&emsp;名:<input type="text" name="username" id="username"/><br/>&emsp;&emsp;码:<input type="password" name="password"/><br/>
确认密码:<input type="password" name="password_confirm"/>
<hr/>
<input type="button" value="点击此处获取对应id对话框的属性值" id="button"/>
<input type="button" value="通过name属性获取并弹出密码输入框的值"/>
<input type="button" value="通过标签名称获取并弹出所有input元素的value值" id="nameButton"/>
</body>
</html>

运行此代码后直接就执行循环内容,,且没有如实的弹出value值。
之所以会没有点击按钮就执行弹出框,是因为window.onload()方法中代码顺序不正确。



注意:按钮通过onclick关键字绑定函数的代码如下
nameButton.onclick = fn3;

而不是

nameButton.onclick = fn3();

正确的代码顺序:

<script type="text/javascript">
        window.onload = function () {
            var nameButton = document.getElementById("nameButton");
            function fn3() {
                var inputElements = document.getElementsByTagName("input");
                for(i=0;i<inputElements.length;i++){
                    alert(inputElements[i].value);
                }
            }
            nameButton.onclick = fn3;
        }
</script>

具体操作:将获取“按钮”元素的代码

var nameButton = document.getElementById("nameButton");

放到fn3()函数前面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值