Ich versuche, das folgende zu implementieren.Erstellen Sie eine Tabelle aus einem Objekt jquery/javascript
Ein Benutzer gibt einen Satz in ein Textfeld ein, nach dem eine Tabelle erstellt wird. Ein Beispiel wäre das.
Eingang: "This is what I want to achieve"
Ergebnis:
Derzeit basiert auf dem Code, den ich dort habe, ist ein Objekt, das wie folgt aussieht:
{t: ["this", "to"], i: ["is", "i"], w: ["what", "want"], a: ["achieve"]};
Im Folgenden finden Sie die aktuelle Code habe ich (also see jsfiddle here).
Ich bin in der Lage, die Eingabezeichenfolge und erstellen Sie eine Tabelle mit einer Zeile, die den ersten Buchstaben jedes Wortes hat.
HTML
<textarea id="text-input" name="textarea" rows="5" cols="25">This is what I want to achieve</textarea>
<button class="calculate">Calculate</button>
<table>
<tbody>
<tr class="words-header"></tr>
</tbody>
</table>
Javascript
$(document).ready(function() {
$(".calculate").click(function() {
var result = {},
arr = [];
var array = $("#text-input").val().toLowerCase().split(" ");
for (var i = 0; i < array.length; i++) {
if (typeof result[array[i][0]] == 'undefined') {
result[array[i][0]] = [];
}
result[array[i][0]].push(arr[i]);
}
for (var key in result) {
$(".words-header").append("<td>" + key.toUpperCase() + "</td>");
}
});
});
Ich glaube, der Final Table sollte wie folgt aussehen, wenn es hilft:
<table>
<tr>
<td>A</td>
<td>I</td>
<td>T</td>
<td>W</td>
</tr>
<tr>
<td>achieve</td>
<td>is</td>
<td>this</td>
<td>what</td>
</tr>
<tr>
<td> </td>
<td>i</td>
<td>to</td>
<td>want</td>
</tr>
</table>
Das ist nicht ein mehrdimensionales Array ist, das ist ein Objekt mit Eigenschaften, und sollte auch so geschrieben werden: '{t: [... ], ich: [...], ...} '. – blex
'var $ = jQuery.noConflict();' ergibt keinen Sinn. Besiegt den Zweck von 'noConflict()', der $ $ alias entfernen soll – charlietfl
@blex Ich habe die Frage aktualisiert. Hast du eine Idee, wie ich das umsetzen kann? –