Javascript QuerySelector放入外部js文件时将不工作

Javascript QuerySelector放入外部js文件时将不工作,javascript,onload,onload-event,selectors-api,Javascript,Onload,Onload Event,Selectors Api,当我把这个代码: window.onload = function(){ var inputs = document.querySelectorAll("input[type=text]"); console.log(inputs.length); for(var j=0; j<inputs.length; j++){ inputs[j].onclick = function(){ this.style.width = "50

当我把这个代码:

window.onload = function(){
    var inputs = document.querySelectorAll("input[type=text]");
    console.log(inputs.length);
    for(var j=0; j<inputs.length; j++){
        inputs[j].onclick = function(){
            this.style.width = "500px";
        }
    }
}
window.onload=function(){
var inputs=document.queryselectoral(“输入[type=text]”);
console.log(输入.长度);

对于(var j=0;j尝试将函数附加到,而不是设置
窗口。onload

window.addEventListener(function() {
    //...
});
如果这解决了您的问题,那么正如@adeneo所说,window.onload将被分配到脚本中的其他位置,这将覆盖它可能具有的任何其他值。
这就是为什么一般来说,使用
addEventListener
会更好,因为您可以在不覆盖任何内容的情况下调用它任意多次


但问题也很简单,您的脚本根本没有被评估,您是否尝试在其中放置一些顶级的
控制台.log

尝试将函数附加到,而不是设置
窗口.onload

window.addEventListener(function() {
    //...
});
如果这解决了您的问题,那么正如@adeneo所说,window.onload将被分配到脚本中的其他位置,这将覆盖它可能具有的任何其他值。
这就是为什么一般来说,使用
addEventListener
会更好,因为您可以在不覆盖任何内容的情况下调用它任意多次


但问题也很简单,您的脚本根本没有被评估,您是否尝试在其中放置一些顶级的
控制台。log

在评论/回答的用户的帮助下,我发现我尝试代码的一些输入类型是“email”而不是“text”,而在其他情况下,输入是通过ajax加载的,所以在加载DOM之后

var inputs = document.querySelectorAll("input[type=text]");


当通过ajax加载的内容准备就绪时,我再次调用了该函数。

在评论/回答的用户的帮助下,我发现我尝试代码输入的一些内容是“email”而不是“text”,而在其他情况下,输入是通过ajax加载的,所以在加载DOM之后

var inputs = document.querySelectorAll("input[type=text]");


当通过ajax加载的内容准备就绪时,我再次调用了该函数。

通常情况下,脚本标记的位置会影响DOM选择。因此,请确保脚本标记位于html文件底部,正好在正文标记的末尾之前。这可能会解决问题!

通常情况下,脚本标记的位置会影响DOM选择script标记可能会影响您的DOM选择。因此,请确保您的script标记位于html文件的底部,正好在body标记的结尾之前。也许这会解决问题!

我猜
窗口。onload
在别处调用,覆盖回调,但谁知道呢?@adeneo但是如果回调被覆盖,则callback根本不会被调用,包括OP所说的显示为0的
控制台.log
。在执行此脚本之前,DOM中是否存在任何文本字段。只需使用调试器即可找到它。我得看看这一点;为我们找到了一把小提琴?如果某些东西听起来太好(或太坏)诚然,这可能是一个输入错误…我猜是
窗口。onload
在别处被调用,覆盖了回调,但谁知道呢?@adeneo但如果回调被覆盖,回调将根本不会被调用,包括OP说的显示为0的
控制台.log
。在这个scri之前DOM中是否存在任何文本字段pt正在执行。只需使用调试器来找到它。我要看看这个;有小提琴给我们吗?如果有些东西听起来太好(或不好)诚然,这可能是一个输入错误…不幸的是,使用addEventListener无论如何都不起作用。我在正在执行的同一个外部文件中有一些其他代码。不幸的是,使用addEventListener无论如何都不起作用。我在正在执行的同一个外部文件中有一些其他代码。这是一个简单的答案,但对于一个新手来说,这是真的很有帮助。这么简单的回答,但对新手来说,这真的很有帮助。