Javascript 如何通过ajax调用数据来展开表行以获取更多信息
在下面的ajax调用中,变量shtml为空。给变量赋值的正确方法是什么?如果我在success函数中返回它,我会得到一个“uncaughttypeerror:cannotreadproperty'show'of undefined”错误<代码>行.child(moreinfo(row.data()).show()代码>Javascript 如何通过ajax调用数据来展开表行以获取更多信息,javascript,jquery,ajax,Javascript,Jquery,Ajax,在下面的ajax调用中,变量shtml为空。给变量赋值的正确方法是什么?如果我在success函数中返回它,我会得到一个“uncaughttypeerror:cannotreadproperty'show'of undefined”错误行.child(moreinfo(row.data()).show() 函数moreinfo(d){ var shtml=“”; $.ajax({ 键入:“获取”, url:url+parseInt(d[1]), contentType:“应用程序/json”,
函数moreinfo(d){
var shtml=“”;
$.ajax({
键入:“获取”,
url:url+parseInt(d[1]),
contentType:“应用程序/json”,
数据类型:“json”,
成功:功能(数据){
shtml='当您使用ajax
时,它将异步执行。因此,在执行$.ajax(
)时,它不会等待响应到达并转到下一行,即返回shtml;
,因此,shtml
将始终返回“
要解决您的问题,您可以按以下方式更改代码
将moreinfo
中的参数更新为moreinfo(行,tr)
使用let d=row.data();
获取moreinfo
中的d
值
在success
中添加row.child(shtml).show();
&tr.addClass('show');
从$.ajax
回调
调用moreinfo(行,tr);
从单击
//更新函数参数
功能moreinfo(世界其他地区,tr){
//获取数据
设d=row.data();
$.ajax({
键入:“获取”,
url:url+parseInt(d[1]),
contentType:“应用程序/json”,
数据类型:“json”,
成功:功能(数据){
var shtml='您可以使用或作为moreinfo函数的第二个参数来执行此操作,另一个函数接受回调并执行进一步的工作