如何在javascript的引导数据表中将参数字符串转换为列或已知对象

Posted

技术标签:

【中文标题】如何在javascript的引导数据表中将参数字符串转换为列或已知对象【英文标题】:how to convert parameter string as column or known object in bootstrap datatable in javascript 【发布时间】:2021-06-18 05:32:54 【问题描述】:javascript 文件中: ``` 函数 onSearch(过滤器,数据,参数) this.filter = 过滤器; 变量行 = 1; $.ajax( 类型:“发布”, 数据:数据, contentType: "应用程序/json; charset=utf-8", 数据类型:“json”, 网址:网址, 缓存:假, 成功:功能(味精) var json = JSON.parse(msg.d); var html = ""; $.each(json, function (index, obj) //html += "" // + "" + row.toString() + "" // + "" + obj.Material_No + "" // + "" + obj.Material_Name + "" // + ""; html += 参数; 行++; ); var table = $('#tbDetails').DataTable(); table.destroy(); $("#tbDetails tbody").html(html); $('#tbDetails').DataTable( “破坏”:是的, “订单”:[[0,“asc”]] ); $('#myModal-1').modal('toggle'); , 错误:函数(e) 警报(e.responseText); ); 返回假; ; ```

在 html 文件中:

``` var 参数 = "" + "" + row.toString() + "" + "" + obj.Material_No + "" + "" + obj.Material_Name + "" + ""; onSearch(过滤器,数据,参数); ```

请帮忙,我想知道对象的可变参数,因为我之前评论过代码

【问题讨论】:

【参考方案1】:

您想告诉onSearch 如何格式化它获取的数据,但您不能直接引用rowobj,因为它们在网络调用完成之前不可用。您正在寻找的是callback function。您实际上已经在使用回调 - 您将回调函数作为第二个参数传递给 $.each,以及 $.ajaxsuccess 参数。

您需要更改onSearch 以接受回调函数作为第三个参数,然后在调用onSearch 时将其传递,类似于:

function onSearch(filter, data, callback) 
  // ...
  $.ajax(
    // ...
    success: function (msg) 
      var json = JSON.parse(msg.d);
      var html = callback(json);
      // ...
    ,
  );


onSearch(filter, data, function (json) 
  var html = "";

  $.each(json, function (index, obj) 
    html += ""
    + "" + obj.toString() + ""
    + "" + obj.Material_No + ""
    + "" + obj.Material_Name + ""
    + "";
  );

  return html;
);

没有名为row 的变量,所以我假设它应该是obj。您可能需要进行相应的编辑。

【讨论】:

非常感谢您的回复,但我有这样的错误: function onSearch(filter, data, callback) // ... $.ajax( --> Uncaught ReferenceError : $ 未定义 要使用$,您需要在您的页面中包含jQuery。请参阅here 了解更多信息。 非常感谢您的回复。哦,当然,已经。作为我之前的注释代码 $.each(json, function (index, obj) html += "" + "" + row.toString() + "" + "" + obj.Material_No + "" + "" + obj .Material_Name + "" + ""; row++; );它运行良好。但是,我想用参数替换这段代码。所以,变量 html 变成了 html+=paramater;

以上是关于如何在javascript的引导数据表中将参数字符串转换为列或已知对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Javascript .filter() 方法中将额外参数传递给回调函数?

在 MVC 控制器中将 Javascript 时间字符串转换为 DateTime 或 TimeSpan

如何在 JavaScript 中将字符串转换为 JSON?

JavaScript中将字符串类型转换为整形的函数

如何在 JavaScript 中将字符串转换为浮点数?

如何在alamofire中将参数作为字符串发送