如何在JavaScript上创建对象列表的循环

时间:2016-08-10 08:00:26

标签: javascript jquery ajax list

我得到ajax结果作为对象列表,我需要显示一些查找该列表中每个对象的文本结果,每个对象就像其他textarea一样,我找到了如何为一个textarea创建它的方法:

 success: function(data) {
    setTimeout("$('.loader').hide()", 2000);
    setTimeout("$('#lblack').hide()", 2000);
    console.log(data);

    var cheked_text;
    $.each(data[0].WordInfos, function(index, value) {
        if (value.q > 0) {
            var wr = value.w.fontcolor("red");
            cheked_text = text.replace(new RegExp(value.w, 'g'), '<b>' + wr + '</b>');
            text = cheked_text;
        }
    });
    var sub_ul = $('<ul/>');
    $.each(data[0].WordInfos, function(index, value) {
        var sub_li = $('<li/>');
        $(sub_li).html(value.w + "-" + value.q);
        $(sub_li).appendTo(sub_ul);
    });
    var exresult = document.getElementById("searchresult");
    var appendContent = $("<section id='searchresult'><h4>Result:</h4><div class='words'><b>Words:</b></div><div class='text'><b>Text:</b><br>" + text + "</div></section>");
    if (exresult == null) {
        $(appendContent).find(".words").append(sub_ul);
        $(".Results").append(appendContent);
    } else {
        $("#searchresult").html("<h4>Result:</h4><div class='words'>Words:</div><div class='text'>Text:<br>" + text + "</div>")
        $("#searchresult").find(".words").append(sub_ul);
    }
},

data - analyzeobjs对象列表,我的analyzeobj看起来像:

   public class wordsinf
    {
        public string w;
        public int q;
        public wordsinf(string wf, int quan)
        {
            w = wf;
            q = quan;
        }
    }
    public class AnalyzeObj
    {
        public Guid id;
        public string text;
        public string[] FindWords;
        public List<wordsinf> WordInfos;
    }

因此,我的示例仅适用于列表中的第一个对象,我需要对其中的每个对象执行相同的操作并像另一个新结果一样追加,我已经尝试将其全部放在$.each中以获取每个数据但它不工作,任何想法?如果不能理解,请提出任何问题。

数据输出示例:

Array[2]
0:
Object
FindWords:
Array[2]
0:"asd"
1:"qwe"
WordInfos:
Array[2]
0:Object
q:1
w:"asd"
1:Object
q:2
w:"qwe"
id:"5d6621aa-74c6-496e-b57a-174426cc6b03"
text:"qweqwe asd ldalldsl"

Thats how looks like result for one textarea.

1 个答案:

答案 0 :(得分:0)

找到解决方案。

                       setTimeout("$('.loader').hide()", 2000);
                    setTimeout("$('#lblack').hide()", 2000);
                    console.log(data);
                    $.each(data, function (index, value) {
                        var cheked_text;
                        var Edit_text = value.text;
                        $.each(value.WordInfos, function (index, value) {
                            if (value.q > 0) {
                                var wr = value.w.fontcolor("red");
                                cheked_text = Edit_text.replace(new RegExp(value.w, 'g'), '<b>' + wr + '</b>');
                                Edit_text = cheked_text;
                            }
                        });
                        var sub_ul = $('<ul/>');
                        $.each(value.WordInfos, function (index, value) {
                            var sub_li = $('<li/>');
                            $(sub_li).html(value.w + "-" + value.q);
                            $(sub_li).appendTo(sub_ul);
                        });
                        var exresult = document.getElementById("searchresult");
                        var appendContent = $("<section id='searchresult'><h4>Result:</h4><div class='words'><b>Words:</b></div><div class='text'><b>Text:</b><br>" + Edit_text + "</div></section>");

                            $(appendContent).find(".words").append(sub_ul);
                            $(".Results").append(appendContent);

                    });