JS动态修改表格内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>

        * {
            margin: 0;
            padding: 0;
            /* 字体大小 */
            font-size: 16px;
            /* 文本对齐方式 */
            text-align: center;
        }

        table {
            width: 100%;
            border: 1px solid skyblue;
            border-collapse: collapse;
            line-height: 33px;
        }

        td {
            width: 20%;
            border: 1px solid skyblue;
            /*文字不换行*/
            white-space: nowrap;
            overflow: hidden;
        }

        .inputOne {
            /* 去掉input默认边框 */
            outline: none;
            border:none;
line-height: 33px; width: 100%; height: 100%; display: inline; background-color: #ffe9ac; } </style> <script> window.onload = function (e) { // 获取所有的单元格 var td = document.getElementsByTagName("td"); for (var i = 0; i < td.length; i++) { td[i].index = i; td[i].onclick = function (e) { if (e.target.tagName.toLowerCase() == "td") { var input = document.createElement("input"); input.type = "text"; input.className = "inputOne"; input.value = this.innerHTML; td[this.index].innerHTML = ""; td[this.index].appendChild(input); input.focus(); input.onblur = function () { this.parentNode.innerHTML = input.value; input.remove(); }; // 阻止冒泡 input.onclick = function (evt) { evt = evt || window.event; evt.stopPropagation() ? e.stopPropagation() : e.cancelBubble = true; } } }; } } </script></head><body><table> <tr> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> </tr> <tr> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> </tr> <tr> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> </tr> <tr> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> </tr> <tr> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> <td>单元格</td> </tr></table></body></html>
动态修改表格内容表格不更新,可能有多种原因,以下是不同场景下的解决办法: ### HTML 表格场景 若使用 JavaScript 动态修改 HTML 表格内容却未更新,可能是操作 DOM 元素时出现问题。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <table id="myTable"> <tr> <td>原始内容</td> </tr> </table> <button onclick="updateTable()">更新表格</button> <script> function updateTable() { // 获取表格单元格 const cell = document.getElementById('myTable').rows[0].cells[0]; // 修改单元格内容 cell.textContent = '新内容'; } </script> </body> </html> ``` 这里要确保正确获取 DOM 元素,使用 `textContent` 或 `innerHTML` 修改内容。 ### 前端框架(如 Vue.js)场景 在 Vue.js动态修改表格内容不更新,可能是数据绑定问题。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> </head> <body> <div id="app"> <table> <tr> <td>{{ tableData }}</td> </tr> </table> <button @click="updateData">更新表格</button> </div> <script> new Vue({ el: '#app', data: { tableData: '原始内容' }, methods: { updateData() { // 修改数据 this.tableData = '新内容'; } } }); </script> </body> </html> ``` 要保证数据绑定正确,通过修改 Vue 实例的 `data` 属性更新表格内容。 ### 后端渲染表格场景 若后端渲染表格修改数据后表格不更新,可能是缓存或未重新渲染页面的问题。 ```python from flask import Flask, render_template_string app = Flask(__name__) @app.route('/') def index(): table_data = '原始内容' return render_template_string(''' <table> <tr> <td>{{ table_data }}</td> </tr> </table> <a href="/update">更新表格</a> ''', table_data=table_data) @app.route('/update') def update(): new_table_data = '新内容' return render_template_string(''' <table> <tr> <td>{{ table_data }}</td> </tr> </table> <a href="/update">更新表格</a> ''', table_data=new_table_data) if __name__ == '__main__': app.run(debug=True) ``` 要确保修改数据后重新渲染页面,避免缓存影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值