2017-03-03 4 views
0

Also habe ich meine Tabelle und läuft, aber ich bin nicht in der Lage, einen gültigen "malito" Link zu meinem Tisch hinzufügen, und es gibt keine guten Beispiele, die ich kann finden. Ich habe versucht, etwas wieSo fügen Sie einen Link zu einer Tabelle via JS-Datei

"<td>" + <a href = "users[i].email"> + </a> + "</td>" + 

aber es funktioniert nicht =.

var users = [ 
{first_name: "Kaitlin", last_name: "Burns", age: 23, email: "[email protected]"}, 
{first_name: "Joshua", last_name: "Feir", age: 31, email: "[email protected]"}, 
{first_name: "Stephen", last_name: "Shaw", age: 28, email: "[email protected]"}, 
{first_name: "Timothy", last_name: "McAlpine", age: 37, email: "[email protected]"}, 
{first_name: "Sarah", last_name: "Connor", age: 19, email: "[email protected]"} 
]; 

window.onload = function() 
{ 
var tableContainer = document.querySelector("#outputTable"); 

var table = ""; 
for (var i = 0; i < users.length; i++) 
{ 
    table += "<tr>" + 
       "<td>" + users[i].first_name + "</td>" + 
       "<td>" + users[i].last_name + "</td>" + 
       "<td>" + users[i].age + "</td>" + 
       //Email link here 
      "</tr>"; 
} 
tableContainer.innerHTML += table; 

}; 

HTML FILE

<h3> Information </h3> 
     <head> 
      <script src = "js/table.js"></script> 
     </head> 
     <body> 
      <table id = "outputTable" border = "1"> 
      <thead style = "background-color: orangered;"> 
       <tr> 
        <th> First Name </th> 
        <th> Last Name </th> 
        <th> Age </th> 
        <th> Email </th> 
       </tr> 
      </table> 
     </body> 

Dies ist, wie mein Tisch

Information 

First Name Last Name Age Email 
Kaitlin  Burns  23 
Joshua  Feir  31 
Stephen  Shaw  28 
Timothy  McAlpine 37 
Sarah  Connor  19 
+0

Es behoben, aber nichts ändert sich –

Antwort

0

sieht ich eher die Funktion auf eigene oder nennen würde selbst aufrufen, anstatt Befestigung an window.onload für viele andere unbeabsichtigte Gründe.

var users = [ 
 
{first_name: "Kaitlin", last_name: "Burns", age: 23, email: "[email protected]"}, 
 
{first_name: "Joshua", last_name: "Feir", age: 31, email: "[email protected]"}, 
 
{first_name: "Stephen", last_name: "Shaw", age: 28, email: "[email protected]"}, 
 
{first_name: "Timothy", last_name: "McAlpine", age: 37, email: "[email protected]"}, 
 
{first_name: "Sarah", last_name: "Connor", age: 19, email: "[email protected]"} 
 
]; 
 

 
window.onload = function() { 
 
    var tableContainer = document.querySelector("#outputTable"); 
 

 
    var table = ""; 
 
    for (var i = 0; i < users.length; i++) { 
 
    table += "<tr>" + 
 
     "<td>" + users[i].first_name + "</td>" + 
 
     "<td>" + users[i].last_name + "</td>" + 
 
     "<td>" + users[i].age + "</td>" + 
 
     '<td><a href="mailto:' + users[i].email + '"/></td>' + 
 
     "</tr>"; 
 
    } 
 
    tableContainer.innerHTML += table; 
 

 
};
<body> 
 
      <table id = "outputTable" border = "1"> 
 
      <thead style = "background-color: orangered;"> 
 
       <tr> 
 
        <th> First Name </th> 
 
        <th> Last Name </th> 
 
        <th> Age </th> 
 
        <th> Email </th> 
 
       </tr> 
 
      </thead> 
 
      </table> 
 
     </body>

1

Sie müssen mailto hinzuzufügen: Tag innerhalb Mail-Link wie:

<div> 
    <a href="mailto:[email protected]">send email</a> 
</div> 

Fiddle here

0

Ihre Zeile JavaScript ist falsch:

"<td><a href=\"mailto:" + users[i].email "\"></a></td>" + 

Sie mischen JavaScript und HTML, was vollkommen in Ordnung ist, aber für Anfänger-Programmierer eher verwirrend. Ihr HTML muss vollständig in einer Zeichenfolge eingeschlossen sein, indem Sie Anführungszeichen (") verwenden, aber HTML auch verwendet Anführungszeichen. Wie fügen Sie einer Zeichenfolge Anführungszeichen hinzu? Sie "escape" es mit einem Backslash (\).

Ein Backslash weist JavaScript an, das nächste Zeichen ein wenig anders zu behandeln. Zum Beispiel bedeutet \" "beende den String hier nicht wirklich ... Ich möchte ein wörtliches Anführungszeichen". \n bedeutet "füge einen Zeilenumbruch hier hinzu, weil ein tatsächlicher newline meinen Code brechen würde".

Auch die URL muss etwas sein, das der Browser erkennt. "http:" weist den Browser an, das HTTP-Protokoll zu verwenden (siehe What is a URL?). Aber Sie verlinken nicht auf eine Webseite, Sie möchten mit einer E-Mail "verknüpfen", so dass Sie die "mailto:" protocol verwenden müssen.

Verwandte Themen