Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript,无法读取未定义的属性,但会打印到控制台_Javascript_Jquery_Html - Fatal编程技术网

Javascript,无法读取未定义的属性,但会打印到控制台

Javascript,无法读取未定义的属性,但会打印到控制台,javascript,jquery,html,Javascript,Jquery,Html,我有一个jQuery调用,它将数据输入到一个对象中。 我试图使用object值设置为javascript中的标签文本,但它抛出 “无法读取未定义的属性“0”。” 其中,当它成功地将值打印到控制台时 var数据; 变种optionData; $(文档).ready(函数(){ $.ajax({ url:“辅导评估工具.aspx/GetCATQuestionAndOptions”, 键入:“POST”, 数据类型:“json”, contentType:“应用程序/json;字符集=utf-8”,

我有一个
jQuery
调用,它将数据输入到一个对象中。 我试图使用object值设置为
javascript
中的标签文本,但它抛出

“无法读取未定义的属性“0”。”

其中,当它成功地将值打印到控制台时

var数据;
变种optionData;
$(文档).ready(函数(){
$.ajax({
url:“辅导评估工具.aspx/GetCATQuestionAndOptions”,
键入:“POST”,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
成功:函数(数据){
questionData=data.d[0];
optionData=data.d[1];
console.log(questionData[0].QuestionText);
console.log(“问题数据”,问题数据);
日志(“选项数据”,optionData);
},
错误:函数(错误){
console.log(错误);
警报('检索数据时出错。请与支持人员联系');
}        
});
document.getElementById('firstQuestion')。innerHTML=questionData[0]。QuestionText;
});
$.ajax()
,因此在填充
questionData
之前设置
innerHTML
。在成功回调中移动第22行,以确保数据在使用前可用

虽然在技术上可以使呼叫同步,但这不是一个好主意

$.ajax({
   // ...
   async: false,
   // ...
});
该代码将阻止任何其他JavaScript执行,直到ajax调用完成

顺便说一句,一些JavaScript工具可以帮助您在代码在浏览器中执行之前捕获这些错误。我最近将一些JS转换为TS,并对捕获的bug数量非常满意


干杯

实时控制台输出的可能副本将在对象更改时更新。非常感谢Michael,它确实有效,我很感激。当然!如果它完全解决了您的问题,请将答案标记为正确。它将帮助其他人找到类似问题的答案。:-)是的,我做了标记,我希望有一天我会在TS上工作,实际上我更像一个.net开发人员。谢谢你的帮助。既然您在这里,我可以问您另一个问题吗?
$.ajax({async:false})
调用只是同步调用的一个部分示例,以显示它的外观。您必须为它提供额外的选项才能真正执行任何有用的操作。我无法将代码粘贴到注释var ddlFirstResponse=$(“#ddlFirstResponse”);ddlFirstResponse.empty();ddlFirstResponse.append($(“”).val(“”).html(“”));$。每个(数据,函数(i,optionData){ddlFirstResponse.append($(“”).val(optionData.OptionId).html(optionData.OptionText));});