jQuery脚本在控制台中运行,但不在文件中运行

Kha*_*ani 0 html javascript jquery

我对此代码有疑问:

$(document).ready(function() {
    sweetAlert("a");// This is just a test, and it runs successfully by the way!!!
});

$("#login").keyup(check);

function check() {
    $(this).val($(this).val().replace(/\s/g,"_"));
}
Run Code Online (Sandbox Code Playgroud)

浏览器正在加载文件,我从检查器中检查了它,并运行.ready脚本。但是它不能与.keyup一起使用。然后当我复制/粘贴行

$("#login").keyup(check);
Run Code Online (Sandbox Code Playgroud)

在控制台中,它可以成功运行。

如果需要,这是html表单:

<input type="text" name="login" id="login"/>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

Pra*_*man 5

只需移动.keyup内部的documentready函数即可:

$(document).ready(function() {
    sweetAlert("a");// This is just a test, and it runs successfully by the way!!!
    $("#login").keyup(check);
});
Run Code Online (Sandbox Code Playgroud)

原因是,您编写的任何代码$(document).ready(function() {仅在加载所有DOM元素后才会执行。当您说它不起作用时,在$("#login").keyup(check);执行时#login就不会加载。该$(document).ready(function() {会有一次所有元素都被加载你执行。控制台中执行的所有操作均在文档完全加载后执行。