首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON数据没有显示在柱塞中

JSON数据没有显示在柱塞中
EN

Stack Overflow用户
提问于 2015-01-03 23:26:25
回答 1查看 531关注 0票数 0

我很难让JSON数据文档出现/输入到柱塞上的HTML文档中。

目前正在使用的联合来文:

代码语言:javascript
复制
$(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中,并使用查看器名和姓氏。我对柱塞不太熟悉,所以我不确定我是否在柱塞中做错了什么,或者当前代码的一部分是否导致JSON数据没有被输入。

查看当前的柱塞

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-04 00:07:00

问题是,您正在混合jQuery和本地dom方法,然后对什么是什么感到困惑。

这将返回一个jQuery对象:

代码语言:javascript
复制
var viewerSection = $('#viewed');

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

代码语言:javascript
复制
 viewerSection.innerHTML( newViewers);

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

代码语言:javascript
复制
 viewerSection.html( newViewers);

或者使用您需要执行的本机方法进行设置。

代码语言:javascript
复制
var viewerSection = $('#viewed')[0]; /* returns the DOM node from jQuery object */
/* or */
var viewerSection = document.getElementById('viewed');
/* then */
viewerSection.innerHTML( newViewers);

对于DOM操作,我建议您选择jQuery或原生javascript,并坚持使用其中一种或另一种,不要将它们混合在一起

使用html()工作演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27760679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档