javascript - 使用带有可变参数的警报?

标签 javascript html

我想使用Mystring作为警报的参数,这样当鼠标放在链接上时,它会警报Mystring

<html>
<head>
    <script>
    window.onload = initAll;

    function initAll() {
        var Mystring = "Hello world";
        var aTag = document.getElementsByTagName('a')[0];
        aTag.onmouseover = runAlert;
    }

    function runAlert() {
        alert(Mystring);
    }
    </script>
</head>
<body>
    <a href="#">Over me</a>
</body>
</html>

最佳答案

您的 Mystring 变量的作用域位于 initAll 函数内。它在该功能之外不可用。您可能想要做的是在外部定义它并在 initAll 中分配值,如下所示:

window.onload = initAll;
var myString;

function runAlert() {
    alert(myString);
}

function initAll() {
    myString = "Hello world";
    var aTag = document.getElementsByTagName('a')[0];
    aTag.onmouseover = runAlert;
}

如果这就是您要做的,您可以定义一个内联匿名函数,如下所示

    aTag.onmouseover = function() {
        alert(myString);
    };

注意:通常 JavaScript 变量以驼峰命名法命名。

注释 1: 在调用函数之前定义被调用函数始终是一个好习惯,就像我在答案中所示的那样。

关于javascript - 使用带有可变参数的警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806871/

相关文章:

javascript - Electron-builder 未在 Mac OS X 上发布到 GitHub

php - 如何从 foreach 循环中仅将某物放入 1 项中(使用 laravel)

html - 是否可以在 FORM post/get 中添加 anchor ?

html - 如何定位主页上的事件列

html - 如何左右对齐html和css中的每个备用列表项以及元素符号

jquery - 仅对 1200 像素及以上的屏幕启用悬停效果

javascript - 在 Controller angularjs 中调用自定义指令函数

php - 如何在表单中的每个输入/新行之后添加 <br/> 标签

javascript - 为每个 div JQuery 分配一个单独的 ID

javascript - 单击查看下拉菜单