JS动态创建Table,Tr,Td并赋值的具体实现

作者:竹影时间:2026-10-27 12:01:33浏览:372

本文介绍如何在成果库修改场景中,通过监听下拉框change事件触发DWR查询主题集合,并利用JavaScript动态创建Table、Tr和Td元素。代码展示了如何清空现有表格、根据数据长度插入新行与单元格,并绑定复选框与文本内容,实现主题列表的异步加载与展示。

动态表格创建与数据绑定实现

成果库修改需求:


需实现主题列表随成果类型的切换而动态更新。


经资料查询后开始开发,在成果类型下拉框中绑定change()事件以触发DWR服务,进而查询主题集合,最终通过动态创建或编辑Table来完成界面渲染。


核心逻辑概要如下:


JavaScript实现部分:


 

具体代码实现如下:

// 动态获取主题数据函数
function getzts(){
parentId = document.getElementById("bselect1").value;
if(parentId!=""){
dwrMethod.getZtList(parentId,callback5);
}else{
// 清空主题Table的数据
var t=document.getElementById("zhutiTable"); //获取Table对象
var length= t.rows.length; //获取Table下的行数
if(length!=0){ //如果存在行,则执行清空操作
for(var i=length-1;i>=0;i--)
            {  
t.deleteRow(i);
            } 
        } 
var r = t.insertRow();
var c = r.insertCell();
c.innerHTML="暂无主题列表";
document.getElementById('zhutiTable').appendChild(t);
    } 
} 
function callback5(provinces){
var t=document.getElementById("zhutiTable"); //获取Table对象
var length= t.rows.length; //获取Table下的行数
if(length!=0){ //如果存在行,则执行清空操作
for(var i=length-1;i>=0;i--)
            {  
t.deleteRow(i);
                }  
    } 
if(provinces.length>0){
for (var i = 0; i < provinces.length; i++) {
//tr行处理
if(i%4==0){
var r = t.insertRow(t.rows.length);//创建新的行
                     } 
//td列处理
var c = r.insertCell(); //创建新的列
c.innerHTML = "<input type='checkbox' name='zhutiIds' value="+provinces[i][0]+">"+provinces[i][1];
            } 
}else{
var r = t.insertRow();
var c = r.insertCell();
c.innerHTML="暂无主题列表";
    } 
document.getElementById('zhutiTable').appendChild(t);
} 

HTML结构部分:


具体HTML代码实现如下:

<tr>
<td class="add_tit">成果类型</td>
<td>
<s:select id="bselect1" name="pruType1" onchange="getzts();"list="pTypeList" listKey="id" listValue="productionTypeName" headerKey="" headerValue="-- 请选择 --" />
<label class="note4">*</label>
</td>
</tr>
[html]
<tr>
<td class="add_tit">主题</td>
<td id="table1" style="padding-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;">
<table id="zhutiTable" border="0" cellpadding="0" cellspacing="0" width=100% class="table_table">
<tr>
<td style="color: red;">注:请先选择成果类型</td>
</tr>
</table>
</td>
</tr>
作者最新文章