Javascript 将参数传递到对象中,并将其用于querySelector,但返回null
我尝试创建一个对象并向其中传递一个参数 当I console.log此属性时,它工作正常 但当我尝试使用querySelector时,它返回nullJavascript 将参数传递到对象中,并将其用于querySelector,但返回null,javascript,Javascript,我尝试创建一个对象并向其中传递一个参数 当I console.log此属性时,它工作正常 但当我尝试使用querySelector时,它返回null 有人知道它为什么返回null吗?将整个代码放在窗口中。onload=function(){}。您可能已经将脚本放在了head中,但元素在body中,这就是为什么元素加载较晚,脚本返回null的原因。如果使用window.onload=function(){}加载整个文档后,脚本将运行 window.onload=function(){ var a
有人知道它为什么返回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。。。没有问题;)然后单击问题中的关闭
按钮,这将阻止用户反复尝试回答问题