jQuery를 사용하여 행으로 새 테이블을 만들고 div 내부에 랩핑하는 방법
-
06-07-2019 - |
문제
나는 div 요소 안에 테이블을 만들고 싶습니다.
내 .html 파일에는 이것을 가지고 있습니다
<div id='div1'> </div>
내 JS 파일에서 행과 데이터가있는 새 테이블을 배치하고 싶습니다.
이것을 어떻게 구현할 수 있습니까?
해결책
테이블의 HTML이 있다고 가정하면 간단히 jQuery 객체를 만들어 Div에 추가 할 수 있습니다. 데이터가있는 경우 데이터를 반복하고 데이터에서 셀/행을 생성하고 독립적으로 추가해야합니다.
$('<table><tr><td>.....</td></tr></table>').appendTo( '#div1' );
또는
var data = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [7, 8, 9 ] ];
var html = '<table><thead><tr>...</tr></thead><tbody>';
for (var i = 0, len = data.length; i < len; ++i) {
html += '<tr>';
for (var j = 0, rowLen = data[i].length; j < rowLen; ++j ) {
html += '<td>' + data[i][j] + '</td>';
}
html += "</tr>";
}
html += '</tbody><tfoot><tr>....</tr></tfoot></table>';
$(html).appendTo('#div1');
다른 팁
이것과 함께 갈 수있는 여러 가지 방법이 있습니다. 한 가지 방법은 다음과 같은 일을하는 것입니다.
// $(document).ready() makes sure that nothing happens until the page
// is fully loaded. It's important because the div may not have loaded
// yet if you put code outside of this
$(document).ready( function() {
$("#div1").append(
"<table><tr><td>My column 1, row 1</td>" +
"<td>My column 2, row 2</td></tr>" +
"<tr><td>My column 1, row 2</td>" +
"<td>My column 2, row 2</td></tr></table>");
});
이렇게하면 전체 테이블을 DIV에 넣고 HTML로 구문 분석합니다. 다른 방법은 각 행을 별도로 추가하려면 다음과 같습니다.
$(document).ready(function() {
$("#div1").append("<table id=\"my_table1\"></table>");
$("#my_table1").append("<tr><td>Row 1</td></tr>");
... insert more rows here ...
$("#my_table1").append("<tr><td>Row ...</td></tr>");
});
그것을 이해하는 것이 중요합니다 .append()
입력 한 HTML 또는 텍스트를 넣습니다 내부에 달러 신호 선택기를 사용하여 선택한 요소 중$("selector text")
)
이 구조를 갖는 HTML :
<html>
<head>
<body>
<div id="container">
<div id="row0" class="row">
<div id="col0" class="column">
<div id="col1" class="column">
<div id="col2" class="column">
</div>
<div id="row1" class="row">
<div id="col0" class="column"></div>
<div id="col1" class="column"></div>
<div id="col2" class="column"></div>
</div>
<div id="row2" class="row">
<div id="col0" class="column"></div>
<div id="col1" class="column"></div>
<div id="col2" class="column"></div>
</div>
</div>
</body>
</html>
이것은 jQuery 코드입니다
$(document).ready(function(){
var row,col,rowid,colid;
for(i=0;i<=2;i++){
row='<div id=\"row'+i+'\" class=\"row\"></div>';
$("#container").append(row);
for(j=0;j<=2;j++){
col='<div id=\"col'+j+'\" class=\"column\"></div>';
$("#row"+i).append(col);
$("#col"+j).append(flipper);
}
}
});
예를 들어 서버에서 Jason 데이터를 받았습니다.
var obj = JSON.parse(msg);
var tableString ="<table id='tbla'>";
tableString +="<tr><th>Name<th>City<th>Birthday</tr>";
for (var i=0; i<obj.length; i++){
tableString +=gg_stringformat("<tr><td>{0}<td>{1}<td>{2}</tr>",obj[i].name, obj[i].city, obj[i].birthday);
}
tableString +="</table>";
$('#divb').html(tableString);
GG_StringFormat의 코드는 다음과 같습니다
function gg_stringformat() {
var argcount = arguments.length,
string,
i;
if (!argcount) {
return "";
}
if (argcount === 1) {
return arguments[0];
}
string = arguments[0];
for (i = 1; i < argcount; i++) {
string = string.replace(new RegExp('\\{' + (i - 1) + '}', 'gi'), arguments[i]);
}
return string;
}
var newContent = $('<your html="here"/>');
var insertLocation = $('#div1');
insertLocation.append(newContent);
제휴하지 않습니다 StackOverflow