11
Tôi mới vào javascript và hy vọng ai đó ở đây có thể giúp tôi với điều này.Javascript/jQuery: Làm thế nào để tự động thêm hàng để cơ thể bảng (sử dụng mảng)
Tôi có một trang HTML có một bảng trên đó và muốn sử dụng JS để tự động thêm các hàng có nội dung nhất định vào phần nội dung của bảng.
Cho đến nay tôi có mã dưới đây được rút ngắn ở đây (trên thực tế có rất nhiều hàng và cột vv) mà đang gây ra cho tôi những vấn đề sau:
- Khi tôi chạy này nó chèn HTML động phía trên bảng thay vì bên trong nội dung của bảng.
- Nó không áp dụng bất kỳ kiểu nào (được xác định bởi các lớp trong CSS của tôi) để nó chỉ hiển thị nội dung của ô mà không cần áp dụng kiểu đường viền hoặc chiều rộng của cột v.v ... Tôi có thể nói bằng cách nào đó rằng nó cũng phải áp dụng các kiểu CSS cho nó?
- Ngoài ra, tôi đã tự hỏi nếu có một cách mà trong biến đầu tiên tôi không cần phải liệt kê tất cả các số riêng mà thay vào đó chỉ cần viết các đầu tiên (1) và cuối cùng (5) số một loạt như họ chỉ đơn giản là chuỗi như 1, 2, 3, 4, 5.
Ai đó có thể cho tôi biết tôi đang làm gì sai ở đây?
JS của tôi:
$('#btnStart').on('click', function(){
var cols = [1, 2, 3, 4, 5];
var tbody = '';
var i;
for (i = 0; i < cols.length; i++) {
tbody += cols[i] + "<tr> \
<td class='td col1'>1</td> \
<td class='td col2'>2</td> \
<td class='td col3'><div contenteditable='true' class='editable'></div></td> \
</tr>";
}
$('#bodyCal').html(tbody);
});
HTML của tôi:
<table class="tblCal">
<colgroup>
<col class="col1" />
<col class="col2" />
<col class="col3" />
</colgroup>
<thead>
<tr>
<th colspan="3" class="th th2">Col 1</th>
</tr>
</thead>
<tbody>
<div id="bodyCal"></div>
</tbody>
</table>
mục tiêu '
'thay vì – roullieTrả lời
Bạn nên nhắm mục tiêu
tbody
để gán ID với nó. Cũng lưu ýdiv
không được là con củatbody
thay đổi liên quan HTML:
Đối với câu hỏi thứ 3:
DEMO
Nguồn
2015-06-02 06:25:22 Satpal
Cảm ơn rất nhiều - điều này sửa chữa 1) và 2) từ câu hỏi của tôi và làm việc hoàn hảo! Bạn có thể giúp tôi với câu hỏi 3 không? Đây sẽ luôn là chuỗi số bắt đầu từ 1 và kết thúc ở một số biến được người dùng nhập. – keewee279
@ keewee279, Xem câu trả lời cập nhật, Thay đổi 'cho (var i = 1; i <= 5; i ++)' thay thế '1' và' 5' bằng số được yêu cầu – Satpal
Điều này là hoàn hảo - cảm ơn rất nhiều vì đã trợ giúp nhanh! :) – keewee279
Đối với câu hỏi thứ 3 của mình:
tại của bạn cho vòng lặp sẽ chạy với giá trị 1, 2, 3, 4 và 5 cho tôi.
Bạn có thể đơn giản hóa nó hơn nữa:
for (i = 1; i < = 5; i ++) {
Nhưng này loại bỏ khả năng đi qua một tham số đầu và cuối, vì vậy không phải là thực tế khi thử nghiệm các phạm vi khác nhau.
Nguồn
2015-06-02 06:34:34
Cảm ơn vì điều này! – keewee279
Bạn phải đặt id "bodyCal" bên cạnh thẻ body table, vì bảng không thể chứa div trừ khi nó được gói trong thẻ td. Hãy thử điều này:
Nguồn
2015-06-02 06:36:57 oMiKeY
Cảm ơn điều này! – keewee279
Các vấn đề liên quan