【问题标题】:My code has a simple issue that i cant figure out我的代码有一个我无法弄清楚的简单问题
【发布时间】:2019-09-03 20:10:26
【问题描述】:

我正在为我的网页设置一个链接,以将我带到另一个网站。

我已经尝试了所有我知道该怎么做的事情。我的知识虽然有限。基本上,当您访问 https://beatsbycayde.com/roster/ 时,它应该带您到

"https://braytech.org/2/{destinyId}/{characterId}/legend"

由于某种原因它没有而且我不明白为什么任何帮助都会非常感激它而是带你去

https://braytech.org/2/{destinyId}/fstats/legend

我知道我在那里有 fstats 我试图将它作为一个对象并在 href 中调用它

// get list of members and populate roster table
var roster = [];
$.when($.ajax({
  url: "https://www.bungie.net/platform/GroupV2/699392/Members/",
  headers: {
    "X-API-Key": "47b810e692d64237911c2cbe0d433cfe"
  }
}).success(function(json) {
  if (json.ErrorStatus === 'Success') {
    roster = json.Response.results;
    console.log('Exalted member list:', roster);
  } else {
    alert('Uh oh, looks like Bungie\'s doing server maintenance or having problems. Please check back again soon!');
    console.log(json);
  }
}).error(function(json) {
  alert('Uh oh, looks like Bungie\'s doing server maintenance or having problems. Please check back again soon!');
  console.log(json);
}), $.ajax({
  url: 'https://www.bungie.net/platform/destiny2/2/profile/4611686018429000034/?components=200',
  headers: {
    'X-API-Key': "47b810e692d64237911c2cbe0d433cfe"
  }
}).success(function(res) {
  console.log('PS4 stats:', res);
})).then(function() {
  listMembers(roster);
});

function listMembers(rsp) {
  var list = $('.memberList-list'),
    on = 0,
    sortMembers = function(method) {
      // sort by date joined
      if (method = joined) {
        list.find('.member').sort(function(a, b) {
          return ($(b).data('joined')) < ($(a).data('joined')) ? 1 : -1;
        }).appendTo(list);
      } else if (method = username) {
        list.find('.member').sort(function(a, b) {
          return ($(b).data('username')) < ($(a).data('username')) ? 1 : -1;
        }).appendTo(list);
      }
      list.find('.member.online').prependTo(list);
    };
  for (var i = 0; i < rsp.length; i++) {
    var profile = rsp[i].bungieNetUserInfo,
      member = $('<a></a>');
    // tally up online members
    if (rsp[i].isOnline) {
      on++
    }
    // check for valid profile
    // some users don't have Bungie profiles somehow and it breaks function
    if (typeof profile != 'undefined') {
      // store response data in semantic variables
      var name = rsp[i].destinyUserInfo.displayName,
        joinDate = rsp[i].joinDate,
        joined = joinDate.substring(0, joinDate.indexOf('T')),
        online = rsp[i].isOnline,
        icon = profile.iconPath,
        memberId = profile.membershipId,
        memberType = rsp[i].destinyUserInfo.membershipType,
        destinyId = rsp[i].destinyUserInfo.membershipId,
        rank = rsp[i].memberType;
      // configure D OM node and add to page
      $('#destiny-Id').text(destinyId);
      $.ajax({
        url: "https://www.bungie.net/Platform/Destiny/2/Account/" + destinyId + "/",
        headers: {
          "X-API-Key": "47b810e692d64237911c2cbe0d433cfe"
        }
      }).done(function(json) {});
      $(function() {
        $.ajax({
          url: "https://www.bungie.net/Platform/Destiny/2/Account/4611686018429000034/",
          headers: {
            "X-API-Key": "47b810e692d64237911c2cbe0d433cfe"
          },
          success: function(data) {
            // Gambit stats
            var fstats = data.Response.data.characters[0].characterBase.characterId;
            // Populate stats
            // pvp
            $('#player-f-stats').text(fstats);
          },
          error: function(data) {
            alert('Uh oh, failed to load player stats! Looks like Bungie\'s doing server maintenance or having problems. Please check back again soon!');
            console.log('Error loading player stats:', data);
          }
        });
      });
      member.attr({
        'class': 'j-row vertical-center-row member',
        'href': '/player/?bungieId=' + memberId + '&destinyId=' + destinyId + '&joined=' + joined + '&rank=' + rank,
        'title': 'See player profile for ' + name,
        'data-joined': joined.replace(/-/g, ''),
        'data-username': name,
        'data-online': 'false',
        'data-searchable': name,
      }).html('<div class="j-col j-col-1 member-icon"><img src="https://bungie.net/' + icon + '"></div>' + '<div class="j-col j-col-3 member-name"><h3>' + name + '</h3></div>' + '<div class="j-col j-col-3 member-joined" data-label="Joined">' + joined.replace(/-/g, '/') + '</div>' + '<div class="j-col j-col-3 member-status" data-label="Status"><span class="member-online" id="status-' + memberId + '">' + online + '</span></div>' + '<div class="j-col j-col-3 member-button"><a class="button outline gold full-width">' + 'View Stats' + '</a></div>' + '<div class="j-col j-col-3 member-button"> + <a href="https://braytech.org/2/' + destinyId + '/' + "fstats" + '/legend">In Depth Stats</a>' + '</a></div>').appendTo(list);
      // indicate online/offline status
      if (String(online) === 'true') {
        $('#status-' + memberId).text('Online').addClass('online').closest('.member').attr('data-online', true).addClass('online');
      } else {
        $('#status-' + memberId).text('Offline').removeClass('online');
      }
      sortMembers(joined); // sort members by join date
    }
  }
}

【问题讨论】:

  • 嘿@apnp_apnu。欢迎来到 SO。在这一点上,您的代码有点不可读。请整理一下,以便我们尽力为您提供帮助。
  • 我试着整理一下有帮助吗?
  • 这样更好!但是,请注意在Snippet Editor 中有一个按钮TidySave and insert into post 下。也使用它。
  • 我也是这么做的。
  • 谢谢。这真的很有帮助。

标签: javascript json ajax sorting parsing


【解决方案1】:

您有嵌套链接。这会破坏您的 HTML 并阻止您想要使用的 href

在这里您创建每个成员的包装器。这是一个链接。

member.attr({
    'class': 'j-row vertical-center-row member',
    'href': '/player/?bungieId=' + memberId + '&destinyId=' + destinyId + '&joined=' + joined + '&rank=' + rank,
    ...

然后你在这里添加另一个链接:

... <a href="https://braytech.org/2/' + destinyId + '/' + "fstats" + '/legend">In Depth Stats</a>' ...

所以我建议您更改member 元素的结构。也许将顶部链接放在View Stats button 的位置,然后将该按钮更改为&lt;a&gt; 标记。但作为共识,整个member 元素将不可点击,只有链接。

祝你好运!

【讨论】:

    猜你喜欢
    • 2018-01-15
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2013-11-21
    • 2012-03-15
    • 1970-01-01
    相关资源
    最近更新 更多