这是我写的代码。该default
函数应在页面加载时调用,无需单击任何按钮。它应该显示一些数据,然后应该显示两个按钮。我需要对该代码进行哪些修改?
我是初学者,所以我可能错过了很多东西,请帮忙。
这是我的 JavaScript 部分,详细的程序在链接中给出。
function default(){
var i=7;
j=15;
document.write(i+j);
}
这是我写的代码。该default
函数应在页面加载时调用,无需单击任何按钮。它应该显示一些数据,然后应该显示两个按钮。我需要对该代码进行哪些修改?
我是初学者,所以我可能错过了很多东西,请帮忙。
这是我的 JavaScript 部分,详细的程序在链接中给出。
function default(){
var i=7;
j=15;
document.write(i+j);
}
您不能使用关键字default
:
Uncaught SyntaxError: Unexpected token default
您需要重命名函数。
完成后,您可以将其括在括号中以立即执行:
(function dflt(){
var i = 7, j = 15;
document.write( i + j );
})();
document.write
请注意,这document.write
将清除您的文档,从而删除您的文档内容。您应该插入一个新的文本节点,或更新页面上元素的内容:
(function dflt(){
var i = 7, j = 15;
document.body.appendChild( document.createTextNode( i + j ) );
})();
您还可以将此文本节点添加到页面上的元素:
var tNode = document.createTextNode( i + j );
document.getElementById("foo").appendChild( tNode );
这会将生成的文本添加到id
属性为的任何元素中foo
:
<span id="foo"></span>
您可以使用Immediately Invoked Function Expression
:
(function defaults() { // I edited the function name - "default" can not be used
var i = 7; // You can also remove the function name, will work either
j = 15; // way. "default" is a reserved word
document.write(i + j);
})();
但是它在调用它……你不能不调用它就运行一个函数,你想用魔法执行它吗?
您应该阅读以下内容:
这个“(function(){});”,括号内的函数,在javascript中是什么意思?
正如@stakx 指出的那样,您可以将函数引用传递给在 X 时间后执行函数的函数,例如setTimeout
:
setTimeout(defaults, 1000); // execute "defaults" after one second.
但这就像自己处理一样:
function foo(aFunction){
aFunction();
}
foo(defaults);
如果您不打算使用 jQuery(如 @Photon 严重致命错误所建议的那样),您可以尝试使用body
元素的onload
事件:
<body onload="default();">
...
</body>
尽管这可能无法按预期工作。jQuery 以更可靠的方式处理此问题,因此如果您决定尝试一下,请查看$(document).ready(…)
API 函数。
function default(){
var i=7;
j=15;
document.write(i+j);
}
default 是 javascript 中的保留字,您不能使用它。