Javascript 将参数传递到对象中,并将其用于querySelector,但返回null

Javascript 将参数传递到对象中,并将其用于querySelector,但返回null,javascript,Javascript,我尝试创建一个对象并向其中传递一个参数 当I console.log此属性时,它工作正常 但当我尝试使用querySelector时,它返回null 有人知道它为什么返回null吗?将整个代码放在窗口中。onload=function(){}。您可能已经将脚本放在了head中,但元素在body中,这就是为什么元素加载较晚,脚本返回null的原因。如果使用window.onload=function(){}加载整个文档后,脚本将运行 window.onload=function(){ var a

我尝试创建一个对象并向其中传递一个参数

当I console.log此属性时,它工作正常

但当我尝试使用querySelector时,它返回null


有人知道它为什么返回null吗?

将整个代码放在
窗口中。onload=function(){}
。您可能已经将脚本放在了head中,但元素在body中,这就是为什么元素加载较晚,脚本返回null的原因。如果使用
window.onload=function(){}
加载整个文档后,脚本将运行

window.onload=function(){
var ajaxFileUploader=函数(formId){
this.formId=formId;
console.log(this.formId);//myForm
返回console.log(document.querySelector(this.formId));
}
var foo=新的ajaxFileUploader(“#myFrom”);
}

名字:
姓氏:

关于“this”的上下文丢失,存在一个问题

解决方案1:

var ajaxFileUploader = function(formId){
    this.formId = formId;

    console.log(this.formId); //myForm
    return console.log(
        document.querySelector(this.formId)// null
    );
}

var foo = new ajaxFileUploader('#myFrom');
解决方案2:

var ajaxFileUploader = function(formId){
    this.formId = formId;

    console.log(this.formId); //myForm
    return console.log(
        document.querySelector(this.formId)// null
    );
}

var foo = new ajaxFileUploader('#myFrom');

另一个解决方案是您可以使用“formId”,它将通过函数的词法上下文获得。

提供最少的信息来调试您的问题。显示您的html和相关脚本
返回控制台.log(param)
给出
非法返回语句
错误
返回文档.querySelector(this.formId)
@RobG
已经存在
var foo=new ajaxFileUploader(“#myFrom”)直接使用formId而不是这个。formIdsry我只是注意到我有打字错误,我把表单打到了from,花了我好几个小时才发现,XDha haa。。。没有问题;)然后单击问题中的
关闭
按钮,这将阻止用户反复尝试回答问题