我很难让JSON数据文档出现/输入到柱塞上的HTML文档中。
目前正在使用的联合来文:
$(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数据没有被输入。
查看当前的柱塞。
发布于 2015-01-04 00:07:00
问题是,您正在混合jQuery和本地dom方法,然后对什么是什么感到困惑。
这将返回一个jQuery对象:
var viewerSection = $('#viewed');这是将一个属性应用于jQuery对象,该对象不会更新DOM,因为它没有应用于DOM节点:
viewerSection.innerHTML( newViewers);要使用jQuery设置html,您需要使用html()方法:
viewerSection.html( newViewers);或者使用您需要执行的本机方法进行设置。
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()工作演示
https://stackoverflow.com/questions/27760679
复制相似问题