javascript - JSON 数据未显示在 Plunker 中

标签 javascript jquery json plunker

我在将 JSON 数据文档显示/输入到 Plunker 上的 HTML 文档中时遇到问题。

当前使用的JS:

$(document).ready(function() {

  //Content Viewer Information
  function checkViewers() {
    //Base Variables
    var viewer = $('#viewed span.user');
    var totalViews = $('#viewed span.user').length;
    var shortenViews = $('#viewed span.user').length -1;

    if (totalViews === 0) {
        $('<span> 0 people have </span>').insertBefore($('#viewed span:last-child'));
    }
    if (totalViews === 2) {
        $('<span> and </span>').insertAfter(viewer.first());
    }
    if (totalViews >= 3) {
        viewer.slice(1).hide();
        $('<span> and </span>').insertAfter(viewer.first());
        $('<span class="user count"></span>').insertAfter(viewer.eq(2));
        $('.count').html(shortenViews + ' more people');
    }
  }

  checkViewers();

  //JSON Data
  var xhr = new XMLHttpRequest();

  xhr.onload = function() {
      if (xhr.status === 200) {
          responseObject = JSON.parse(xhr.responseText);

          var newViewers = '';
          for (var i = 0; i < responseObject.profiles.length; i++) { 
              newViewers += '<span class="user">' + responseObject.profiles[i].firstName + ' ';
              newViewers += responseObject.profiles[i].lastName + '</span>';
          }

          //Update Page With New Content
          var viewerSection = $('#viewed');
          viewerSection.innerHTML = newViewers;

      }
  };

  xhr.open('GET', 'data.json', true);
  xhr.send(null);
  console.log('JSON Fired');

});

JSON 数据应与查看者的名字和姓氏一起输入到 div #viewed 中。我对 Plunker 不太熟悉,所以我不确定我是否在 Plunker 中以错误的方式进行了操作,或者当前代码的一部分是否导致 JSON 数据无法输入。

查看当前Plunker .

最佳答案

问题是你混合了 jQuery 和原生 dom 方法,然后对什么是什么感到困惑

这将返回一个 jQuery 对象:

var viewerSection = $('#viewed');

这是将一个属性应用于该 jQuery 对象,该对象不会更新 DOM,因为它没有应用于 DOM 节点:

 viewerSection.innerHTML( newViewers);

要使用 jQuery 设置 html,您需要使用 html() 方法:

 viewerSection.html( newViewers);

或者使用您需要执行的 native 方法来设置它

var viewerSection = $('#viewed')[0]; /* returns the DOM node from jQuery object */
/* or */
var viewerSection = document.getElementById('viewed');
/* then */
viewerSection.innerHTML( newViewers);

对于 DOM 操作,我建议您选择 jQuery 或 native javascript,并坚持使用其中之一,不要混合使用它们

<强> Working Demo Using html()

关于javascript - JSON 数据未显示在 Plunker 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27760679/

相关文章:

javascript - 如何使用 jQuery/Javascript 迭代表单字段

javascript - 从 javascript 同步调用 Struts 2 操作

javascript - 在 PHP 中使用 AJAX 响应前置和覆盖类

javascript - Bash 脚本在 CodeKit Hook 中不起作用

jquery - 如何将图像映射合并到流体布局中?

javascript - 如何在点击链接时禁用链接?

javascript - 使用 JQuery 从本地 url 解析 JSON

ios - Swift 3 转换 unicode 字符串 U+1F600

javascript - 组合 JS 对象并将其打印回来的最佳方法是什么?

javascript - PHP上传文件上传后将动画gif变成普通图片