如何使用我用.append创建的JQuery创建动态表但问题是当我再次点击时创建anther表但我想要添加到同一个表中,那么我该怎么做才能帮助我。
$(function () {
$("#addProduct").click(function () {
var table = $('<table></table>').addClass('foo');
for (i = 0; i < 10; i++) {
var row = $('<tr></tr>');
for (i = 0; i < 10; i++) {
var row1 = $('<td></td>').addClass('bar').text('result ' + i);
table.append(row);
row.append(row1);
}
}
$('#someContainer').append(table);
});
});
这是HTML
<button id="addProduct">Add Product</button>
<div id="someContainer"></div>
答案 0 :(得分:7)
试试我的回答
$(function () {
$("#addProduct").click(function () {
var table = $('<table></table>').addClass('foo');
for (var i = 0; i < 10; i++) {
row = $('<tr></tr>');
for (var j = 0; j < 10; j++) {
var rowData = $('<td></td>').addClass('bar').text('result ' + j);
row.append(rowData);
}
table.append(row);
}
if ($('table').length) {
$("#someContainer tr:first").after(row);
}
else {
$('#someContainer').append(table);
}
});
});
答案 1 :(得分:2)
试试这个
$(function() {
$("#addProduct").click(function() {
if($('#someContainer table').length > 0)
{
var row = $('<tr></tr>');
for(i=0; i<10; i++){
var row1 = $('<td></td>').addClass('bar').text('result ' + i);
row.append(row1);
}
$('#someContainer table').append(row);
}
else
{
var table = $('<table></table>').addClass('foo');
for(i=0; i<10; i++){
var row = $('<tr></tr>');
for(i=0; i<10; i++){
var row1 = $('<td></td>').addClass('bar').text('result ' + i);
table.append(row);
row.append(row1);
}
}
$('#someContainer').append(table);
}
});
});
live demo此处。
答案 2 :(得分:0)
如果你想在jQuery中使用.one()尝试只执行一次。
$(function () {
$("#addProduct").one("click", function () {
var table = $('<table></table>').addClass('foo');
for (i = 0; i < 10; i++) {
var row = $('<tr></tr>');
for (i = 0; i < 10; i++) {
var row1 = $('<td></td>').addClass('bar').text('result ' + i);
table.append(row);
row.append(row1);
}
}
$('#someContainer').append(table);
});
});
检查JSFiddle。
答案 3 :(得分:0)
$(function () {
$("#addProduct").click(function () {
var table
if($('#someContainer').find("table").length > 0){
table =$('#someContainer').find("table");
}else{
table = $('<table></table>').addClass('foo');
}
for (i = 0; i < 10; i++) {
var row = $('<tr></tr>');
for (i = 0; i < 10; i++) {
var row1 = $('<td></td>').addClass('bar').text('result ' + i);
table.append(row);
row.append(row1);
}
}
$('#someContainer').append(table);
});
});
试试这个DEMO
答案 4 :(得分:0)
<html>
<head>
</head>
<body>
<table id="game_table" border="1"></table>
<script language="JavaScript">
gt = document.getElementById('game_table'),
i = 0,
frag = document.createDocumentFragment(),
tr = document.createElement('tr'),
td = document.createElement('td');
while (i<10) {
var _tr = tr.cloneNode(),
j = 0;
while (j<10) {
_tr.appendChild(td.cloneNode());
var min = 1 ;
var max = 3 ;
var a = Math.floor( Math.random() * (max + 1 - min) ) + min ;
var temp = document.createElement('div');
temp.innerHTML = "str";
_tr.appendChild(temp.firstChild);
j++;
}
frag.appendChild(_tr);
i++;
}
gt.appendChild(frag);
</script>
</body>
</html>
答案 5 :(得分:0)
基于@Olrac的答案
var tableBody = $('<table></table>').append($("<tbody>"));
$.each(dbRecords,function(index,record){
row = $('<tr></tr>');
$.each(record,function(i,cellValue){
var rowData = $('<td></td>').text(cellValue);
row.append(rowData);
});
tableBody.append(row);
});
$('#contentDiv').append(tableBody);
这很好用
输出
<table>
<tbody>
<tr>
<td>name</td>
<td>age</td>
<td>email</td>
<td>data</td>
</tr>
<tr>
<td>omar</td>
<td>26</td>
<td>omar@gmail.com</td>
<td>123</td>
</tr>
<tr>
<td>ali</td>
<td>22</td>
<td>ali@gmail.com</td>
<td>456</td>
</tr>
</tbody>
</table>