2017-01-25 2 views
-1

Ich bin zur Zeit dieses Stück Code verwendet:jQuery erstellen <td> Element mit href

for (var website in response) { 
    var row = $('<tr class="odd gradeX"/>'); 
    $('<td/>', { text: response[website]['website_name'] }).appendTo(row); 
    row.appendTo(tBody); 
} 

Nein ich die td wollen /website?id= zu verbinden, wo id gleich response[website] sein sollte. Was wird der kürzeste Weg sein, um das zu erreichen?

um es klarer zu machen. wenn zur Zeit das Ergebnis $('<td/>', { text: response[website]['website_name'] ist: <td>siteName</td> und der Wert innerhalb response[website] 2 zum Beispiel, als ich ein Element wie folgt aussehen erstellen möchten:

<td><a href="/website?id=2">siteName</a></td>.

hinweis: ich suche den kürzesten besten weg. nicht unbedingt eine Zeilenlösung.

+1

Ich bin etwas verwirrt von dem, was Sie fragen. Könntest Du das erläutern? – Rajesh

+0

sicher krank Update meinen Beitrag – Delashmate

+3

Warum muss es eine Zeile sein? Die Kürze kann schön sein, wenn Ihre Kollegen sie nicht lesen können und wissen, wo Sie leben. –

Antwort

2

Erstellen Sie einfach die td und a in ähnlicher Weise zu dem, was Sie bereits haben:

for (var website in response) { 
    var row = $('<tr class="odd gradeX"/>'); 
    var cell = $('<td/>'); 

    $('<a/>', { href: '/website?id=' + response[website], text: response[website]['website_name'] }) 
       .appendTo(cell); 
    cell.appendTo(row); 
    row.appendTo(tBody); 
} 
-2

$(document).ready(function() { 
 
for (var website in response) { 
 
    var row = $('<tr class="odd gradeX"/>'); 
 
    $('<td><a id="'+response[website]+'" href="#">'+response[website]["website_name"]+'</a></td>').appendTo(row);'); 
 
    row.appendTo(tBody); 
 
} 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

Sie können String Template Literal verwenden, um eine HTML-Zeichenfolge zu erstellen und verwenden Sie dann nur $.append Element einfügen.

var response={test:{website_name:"Test Website",id:2},foo:{website_name:"foo",id:3},bar:{website_name:"Bar Website",id:4}}; 
 

 
for (var website in response) { 
 
    var _html = `<tr class="odd gradeX"><td><a href="/website?id=${response[website]['id']}">${response[website]['website_name']}</a></td></tr>` 
 
    $('#table tbody').append(_html); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<table id="table"> 
 
    <tbody></tbody> 
 
</table>

Hinweis: String-Vorlage wird in allen Browsern nicht unterstützt. Dazu können Sie eine normale String-Verkettung verwenden, um eine HTML-Zeichenfolge zu erstellen.