2016-08-10 3 views
1

Ich bekomme Ajax Ergebnis als eine Liste von Objekten, und ich muss einige Ergebnisse der Suche nach Text für jedes Objekt in dieser Liste anzeigen, jedes Objekt ist wie andere Textarea, fand ich wie um es für einen Textbereich zu machen:Wie Schleife für Liste von Objekt auf JavaScript

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); 
    } 
}, 

Daten - Liste des analyzeobjs Objekts, sieht mein analyzeobj wie:

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; 
    } 

So nur mein Beispiel für ein erstes Objekt aus der Liste arbeitet, ich tun müssen, um die gleich mit jedem davon und anhängen wie ein anderes neues Ergebnis, habe ich schon versucht, alles in einezu setzenfür jede Daten, aber es funktioniert nicht, irgendwelche Ideen? Stellen Sie Fragen, wenn es nicht ein wenig verständlich ist.

Beispiel der Datenausgabe:

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.

+0

liefern 'Daten' Ausgang – Sojtin

+0

danke für Bearbeitungen, Beispiel der Datenausgabe hinzugefügt. – vtarbinskyi

Antwort

0

Lösung gefunden.

     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); 

        });