2017-06-12 2 views
0

Ich möchte eine längere Zeichenfolge mit Zeilenumbrüchen erhalten, aber es funktioniert nicht mit allen gängigen Befehlen wie \n, \r\n, ... Auch nicht mit HTML-Tags zum Brechen einer Zeile. Ich bin neu im ASP-Framework und JS-Scripting und kann die Lösung nicht selbst finden. Bis jetzt habe ich nicht den richtigen Hinweis im Internet finden, können Sie mir helfen, wenn Sie einen Blick auf meinem spezifischen Code haben:neue Zeile in JS-Funktion

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>DataGen App</title> 
</head> 
<body> 

    <div> 
    <h3>Mitarbeiter</h3> 
    </div> 
    <div> 
    <input type="button" value="generateSQL" onclick="generate();" /> 
    <p id="ma" /> 
    </div> 

    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script> 
    <script> 
     var uri = 'api/mitarbeiter'; 

     function formatItem(item) { 
      return 'INSERT INTO Mitarbeiter VALUES (' + item.Id + ', ' + item.Name + ', ' + item.Vorname + ', ' + item.Bereich + ');'; 
     } 

     function generate() { 
      var str = ""; 
      $.getJSON(uri) 
       .done(function (data) { 
        $.each(data, function (key, item) { 
         str = str + "\n" + formatItem(item); 
         $('#ma').text(str); 
        }); 
       }) 
     } 

    </script> 
</body> 
</html> 

Der Zeilenumbruch sollte in der letzten Funktion erzeugt werden.

Vielen Dank und eine schöne Woche!

+0

jquery 2.0.3 ist veraltet. https://docs.microsoft.com/en-us/aspnet/ajax/cdn/overview#jQuery_Releases_on_the_CDN_0 – GottZ

+0

zum Newline-Problem: Sie müssen '
' -Tags verwenden. Nur damit Sie wissen: '.text()' wandelt es in reinen Text um. Wenn du etwas html hineinwerfen willst, musst du entweder '.text' in' .html' ändern oder etwas fortgeschritteneres machen. nur damit Sie wissen: wenn Sie '.html' verwenden, sollten Sie' formatItem' wahrscheinlich filtern, um mögliche xss zu vermeiden – GottZ

+0

Hey, vielen Dank. Die Konvertierung in HTML-Text war hilfreich. Vielen Dank! – dafna

Antwort

0

Sie können <br> Tag verwenden. Der Tag <br> fügt einen einzelnen Zeilenumbruch ein.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
    <title>DataGen App</title> 
 
</head> 
 
<body> 
 

 
    <div> 
 
    <h3>Mitarbeiter</h3> 
 
    </div> 
 
    <div> 
 
    <input type="button" value="generateSQL" onclick="generate();" /> 
 
    <p id="ma" /> 
 
    </div> 
 

 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script> 
 
    <script> 
 
     var uri = 'api/mitarbeiter'; 
 

 
     function formatItem(item) { 
 
      return 'INSERT INTO Mitarbeiter VALUES (' + item.Id + ', ' + item.Name + ', ' + item.Vorname + ', ' + item.Bereich + ');'; 
 
     } 
 

 
     function generate() { 
 
      var str = ""; 
 
      $.getJSON(uri) 
 
       .done(function (data) { 
 
       console.log(data); 
 
        $.each(data, function (key, item) { 
 
         str = str + "<br>" + formatItem(item); 
 
         $('#ma').html(str); 
 
        }); 
 
       }) 
 
     } 
 

 
    </script> 
 
</body> 
 
</html>