2013-03-06 95 views
0

所以我的控制台日志正确显示所有的信息,所以我知道我的代码工作,但现在我想输出数据到我的HTML中的某个div来显示正在播放的播放列表的歌曲。如何将声音[i] .title的JSON数据打印到div?将JSON数据打印到HTML div?

widget.bind(SC.Widget.Events.PAUSE, function(){ 
    $("#{STORIES.story_id}6 :image").removeClass('buyy') 
     .removeClass('buyyy') 
     .addClass('buy'); 

    widget.getSounds(function(sound) { 
     var a = sound.length; 
     for(var i=0; i<a; i++){ 
      console.log(sound[i].title); 
     } 
    }); 
}); 

回答

1

缺少任何有关DOM树中的哪个位置的信息,您实际上希望将数据放入...

$('#someElement').append($('<div>', {text: sound[i].title })); 
+0

好吧,这工作!谢谢! – user1325578 2013-03-06 23:36:51

+0

另外我怎样才能让它显示在水平列表而不是怪物垂直列表? – user1325578 2013-03-06 23:42:17

+0

使用内联元素而不是块级元素。 – 2013-03-07 00:02:51

0

在许多现代的浏览器,使用jQuery,您可以执行以下操作:

$('#myDiv').text(JSON.stringify(myJson)); 

另外,如果你想的JSON进行格式化就可以使用:

JSON.stringify(myJson, undefined, 2); 
// JSON -------^  ^  ^
// no filter ----------^  ^
// indent two spaces -------------^ 
+0

或者让它非常'JSON.stringify(myJson,空,2)' – Chad 2013-03-06 23:23:40

+0

我觉得OP实际上并没有意味着打印JSON本身 - 只是一个很差的措辞问题。 – 2013-03-06 23:24:04

+0

@MattBall我认为你是对的,我认为他现在意味着'.title'中的字符串,现在我重新阅读它。 – Chad 2013-03-06 23:24:34

-1

像这样的事情

<script type="text/javascript"> 
    //stuff and more stuff// 

    for(var i=0; i<a; i++){ 
     document.getElementById('myList').append= sound[i].title+', '; 
    } 

</script> 
<p>My playlist: <span id='myList'>Empty</span> </p> 
+0

这将持续覆盖之前设置的值。 -1 – 2013-03-07 00:03:56

+0

谢谢,改变innerhtml追加应该做的伎俩? – 2013-03-07 00:10:38

+0

排序,但不是你写的方式。 https://developer.mozilla.org/en-US/docs/DOM/Node.appendChild和OP使用jQuery,所以我根本没有必要为此使用vanilla DOM。 – 2013-03-07 00:29:04