jQuery.each()如何在此对象上使用

6jjcrrmo  于 2023-03-22  发布在  jQuery
关注(0)|答案(2)|浏览(78)

我得到了一些JSON,并试图对响应执行.each。我不确定如何对这个对象执行此操作。我试图获取标题和系统ID。

下面是我的JS:

var siteURL = _spPageContextInfo.webAbsoluteUrl;;
    $.ajax({
        url: siteURL + "/content/_api/web/lists/getbytitle('topsupportarticles')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (response) {
            if (response.d.results.length > 0) {
            console.log(response);
                    //This section can be used to iterate through data and show it on screen .each should be here
                    console.log(response.d.results[0].Title);
                    $(".js-top-support").html("<li><a href=\"/pages/snDetails.aspx?articleID=KB0010606&sysID=" + response.d.results[0].SysID + 
                    "\" class=\"js-top-support-articles\">" + response.d.results[0].Title + "</a><div class=\"x-editable-menu\"><span class=\"btn-edit\"><span class=\"icon-wrench\"></span></span></div></li>");
            }
        },
        error: function (response) {
            alert("Error: " + response);
        }
    });
kyvafyod

kyvafyod1#

你可以选择这两件事之一。
1.您可以使用JSON.parse()方法将字符串解析为有效的json。
1.使用dataType:"json",它可以将json字符串解析为有效的json * 自动 *。
对我来说,第二种方法更好。所以,你可以这样做:

$.ajax({
  url: siteURL + "/content/_api/web/lists/getbytitle('topsupportarticles')/items",
  method: "GET",
  headers: {
    "Accept": "application/json; odata=verbose"
  },
  dataType:"json", //<------------------------ ADDED DATATYPE HERE
  success: function(response) {
    if (response.d.results.length > 0) {
      console.log(response);
      //This section can be used to iterate through data and show it on screen .each should be here
      console.log(response.d.results[0].Title);
      $(".js-top-support").html("<li><a href=\"/pages/snDetails.aspx?articleID=KB0010606&sysID=" + response.d.results[0].SysID +
        "\" class=\"js-top-support-articles\">" + response.d.results[0].Title + "</a><div class=\"x-editable-menu\"><span class=\"btn-edit\"><span class=\"icon-wrench\"></span></span></div></li>");
    }
  },
  error: function(response) {
    alert("Error: " + response);
  }
});

但是你应该注意,如果你只有一个对象,那么你可以在这里使用response.d.results[0],否则使用for循环或$.each()来迭代数组中的对象。
这里有两个分号:

var siteURL = _spPageContextInfo.webAbsoluteUrl;;
rbl8hiat

rbl8hiat2#

如果你把代码上传到jsfiddle或者codepen上会更好。
试试这个:

var results = response.d.results;

jQuery.each(results, function(key,value) {
    console.log(key);
    console.log(value);
    var sysid = value.SysId;
    var title = value.Title;
});

相关问题