Javascript 根据json更新html

Javascript 根据json更新html,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我有一个包含实时匹配的JSON脚本。这些变化每5分钟一次。例如,这些变化可能是现场直播或分数。除此之外,还将删除匹配项并将其添加到JSON中。我想随时更新我的html输出如何才能做到最好?到目前为止,出于测试目的,我已经将更新速度设置为5秒。到目前为止,我已尝试将divs id设置为等于match_id,从而通过 $('div#match-date-id-' + match['match_id']).html('test'); 然而,似乎没有更新。我怎样才能做到最好?我已经创建了一个p

我有一个包含实时匹配的JSON脚本。这些变化每5分钟一次。例如,这些变化可能是现场直播或分数。除此之外,还将删除匹配项并将其添加到JSON中。我想随时更新我的html输出如何才能做到最好?到目前为止,出于测试目的,我已经将更新速度设置为5秒。到目前为止,我已尝试将divs id设置为等于match_id,从而通过

    $('div#match-date-id-' + match['match_id']).html('test');
然而,似乎没有更新。我怎样才能做到最好?我已经创建了一个plnkr,它可以让您下载一个json片段,可以对其进行编辑以进行检查

plnkr.co/edit/eQCShhW01OG5jU4VLx04?p=preview

我之前的坏消息:-)现在我已经做了更彻底的测试,并更新了。我在测试中发现:
过滤器
试图使用未定义的值(
match.id
),并且过滤器试图比较不同数据类型的值(字符串与整数);所以它没有按预期工作:

原件:

   match = match.filter(
      function(match) {
        return match.id > lastId;
   });
更正代码:

    match = match.filter(
        function(match) {
          return parseInt(match.match_id) > lastId;
     });
上面的
match_id
表示JSON文件中的字符串数据类型,所以我必须在比较之前将其转换为整数。更多关于JSON的信息。使用较旧的
过滤器
功能后,没有匹配项通过比较测试

出于测试目的,我还注释了以下行:

        if (match.match_id > lastLoadedMatch) {
           //lastLoadedMatch = match.match_id
        }
因为在使用相同测试数据的第二轮更新中,没有数据通过该条件

此外,我认为还需要将
match_id
转换为整数;例如:

        var matchId = parseInt(match.match_id)
        if ( matchId > lastLoadedMatch) {
           lastLoadedMatch = match.match_id
        }

我希望你觉得它有用:-)注意我为这些更新添加了一个时间戳;很明显,现在每5秒更新一次。

阅读您的代码时,我有点不知所措。你能压缩你的代码,使它是最少量的代码,但仍然包含问题吗?我看了一下,你的ID通常是这样的:等等。在json数据“match_id”中:“65551”是数字,所以我认为在使用上面的jQuery选择器时不存在匹配。所以很难进行更新。好的,是的,很明显我这边的错误,我现在更新了。然而,即使我更改了JSON中的live in键,您的ajax代码肯定正在运行,它现在似乎也没有更新live in。我认为问题在于你的选择者。首先,大多数html ID都写错了。您的id是这样的:“match-date-id-1m 36”。ID中不能包含空格。同样,在选择器中,您试图检测以下内容:“#match-date-id-67843”,但HTML中没有匹配的内容。在函数matchHtml(obj,type)中,您使用以下代码创建div:HTML+=”;您是否应该使用obj['match_id']而不是obj['live in']?好的,您可以发送一份plnkr,说明您用于工作的确切脚本吗?因为它在我的系统中仍然不起作用?@PeterPik这里是JSON数据的前4个“live in”键被更改为“live_in”的地方,plnkr会在每次您更改JSON或其他内容时更新,所以确保它不只是为此工作?因为它在我的服务器上不工作?不updating@PeterPik隐马尔可夫模型。。这是我第一次编辑plunker代码示例,所以我想可能会有一些问题,但我试图通过替换…html(match['live in'])中的空格来编辑您的原始代码示例;在json数据中分别使用下划线u和and,我能够获得更新。不管怎样,我今天就到此为止。祝你好运@彼得皮克更新了答案。看起来这是一个过滤器问题。