我目前正在使用这段代码:
for (var website in response) {
var row = $('<tr class="odd gradeX"/>');
$('<td/>', { text: response[website]['website_name'] }).appendTo(row);
row.appendTo(tBody);
}
不,我希望td
链接到/website?id=
,其中id应该等于response[website]
。实现这一目标的最短途径是什么?
使其更清晰。如果目前$('<td/>', { text: response[website]['website_name']
的结果是:
例如,<td>siteName</td>
和response[website]
内的值为2,而不是我想创建一个如下所示的元素:
<td><a href="/website?id=2">siteName</a></td>
。
注意:我正在寻找最短的最佳方式。不一定是一线解决方案。
答案 0 :(得分:2)
以与您现有的方式类似的方式创建td
和a
:
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);
}
答案 1 :(得分:0)
您可以使用String Template Literal创建一个html字符串,然后使用SELECT COUNT(*)
FROM user_sequences
WHERE sequence_name = 'BIR_GRIDBASE_ID_SEQ';
插入元素。
$.append
&#13;
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);
}
&#13;
注意:所有浏览器都不支持字符串模板。为此,您可以使用普通字符串连接来创建HTML字符串。
答案 2 :(得分:-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>