【问题标题】:How to print out all array in JS?如何打印出JS中的所有数组?
【发布时间】:2020-04-22 14:33:26
【问题描述】:

我已经设法打印出一个数组,但是如何打印出所有数组,因为这是用于论坛的。

$(document).ready(function() {

     var comments = document.getElementById("allcomments").value; 

     //Get Storage 
                var username = window.localStorage.getItem("username");

        // Call Ajax for existing comments
        $.ajax({
        type: 'GET',
        url: 'URL',
        success: function(result) {
            var arr = JSON.parse(result);

            for(var i = 0; i < arr.length; i++) {
                var obj = arr[i];

                console.log(obj);   

                var output = document.getElementById("allcomments"); 
                output.innerHTML = (obj.username + ' ' + obj.comment + ' ' + obj.commDate + ' ' + obj.sentiment); 

            }

        }
    });

    return false;
});

【问题讨论】:

  • 只是不要用output.innerHTML = ... 覆盖output 的内容。将其附加(“添加”)到现有内容。
  • 换句话说,使用output.innerHTML += ... :)
  • @HereticMonkey 关于我现在如何为每条评论设置样式以便它们出现在更像论坛的块中的任何想法?
  • 将它们包裹在元素中并设置样式。
  • @HereticMonkey 我对如何做到这一点有点困惑。由于所有数组 cmets 都与所有 cmets 一起打印,所以我想获取数组中的每个元素。那么如何在它们周围包裹一个 div 和 class 呢?在js文件里面?

标签: javascript html arrays json


【解决方案1】:

由于您使用的是 jQuery,您应该考虑使用 append() 函数而不是 innerHTML。 innerHTML 没有很多有效的用例,你应该尽量避免它。

【讨论】:

  • innerHTML很多 个有效用例。例如,使用产生文本输出的模板系统。
  • 有人知道我将如何设置数组中每个元素的样式吗?
  • 这不是无效的,但它不是一个好习惯 - 调用 innerHTML 会导致浏览器重新创建 DOM,这可能会导致性能问题。
  • @user13382159,是的,只需插入一个带有类的 div,并在你的 css 文件中定位类。像这样的东西:``` output.appendChild(&lt;div class="my-element" &gt; ${obj.username} ${obj.comment} ${obj.commDate} ${obj.sentiment}&lt;/div&gt;);```
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2021-04-07
  • 1970-01-01
  • 2014-05-05
相关资源
最近更新 更多