0

我有一个带有以下代码的复选框:

<input type="checkbox" id="check" onclick="function(this);" checked="checked" />

但在同样的情况下,我希望在页面加载时进行调用。如何手动复制“this”?

我尝试添加 onload="function(this);" 输入,但这不起作用。如果我只是调用“function();” 在页面加载时,该功能自然不起作用。

因此,如果我可以手动调用如下函数,那就太好了:function(htmlElement[check]); 或任何“这个”构成。

希望我已经说清楚了:)

4

5 回答 5

3

在您的情况下,this将引用input元素。由于该元素具有 ID,因此您可以使用该getElementById方法轻松获取对它的引用):

yourFunction(document.getElementById("check"));

您可以将其放在元素的onload属性中body,但理想情况下,停止使用内联事件处理程序并改用该addEventListener方法。

于 2012-10-14T10:25:16.380 回答
0

尝试:

onload="function(document.getElementById('check'));"
于 2012-10-14T10:25:29.187 回答
0

您可以通过 id 获取元素,并在window.onload回调函数中执行此操作。

window.onload = function () {
  yourFunction(document.getElementById('check'));
}
于 2012-10-14T10:25:47.850 回答
0

据我了解,onload 仅适用于<body>标签

您可能想尝试的是:

$(document).ready(function() {
  // Handler for .ready() called.
});

来源:http ://api.jquery.com/ready/

于 2012-10-14T10:25:48.047 回答
0

你可以使用这样的东西:

document.addEventListener( "DOMContentLoaded", function(){
        document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
        yourFunction(document.getElementById("check"));     
}, false );

您必须避免使用:

window.onload = function() {
}

因为通过这种方式,您将覆盖附加到 onload 函数(如果已经通过这种方式附加到 onload)。当您想将 JavaScript 放在单独的文件中时,此方法非常好(最佳解决方案)。

于 2012-10-14T10:26:52.333 回答