我想将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>
答案 0 :(得分:3)
您的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变量以camelCase约定命名。
注1:在调用函数之前定义被调用函数总是一个好习惯,就像我在答案中所示。
答案 1 :(得分:1)
如果您想保留示波器并避免全局污染,可以为警报功能分配参数:
function initAll() {
var Mystring = "Hello world";
var aTag = document.getElementsByTagName('a')[0];
aTag.onmouseover = function(){runAlert(Mystring)};
}
function runAlert(str) {
alert(str);
}