EB开发中经常有以表格行为单位的需求。 下面的例程中演示基本的行处理。 实现方法: 根据数组自动生成表格根据指定的tagName,查询对象的父对象,找到TR对象。 // o : 查询对象 // tm : 父对象的tagName function getParentByTagName(o, tm){ while(o = o.parentNode){ if(o.tagName == tm){ return o; } } return null; } 查询选择行(TR对象)的全部INPUT对象。删除当前对象 el.parentNode.remove(el); 源码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <mce:script type="text/javascript"><!-- function $(id){ return document.getElementById(id); } function getData(){ // 在这里实现读取数据的处理 return ( [ [1, "A1", "A2"], [2, "B1", "B2"], [3, "C1", "C2"] ]); } function getParentByTagName(o, tm){ while(o = o.parentNode){ if(o.tagName == tm){ return o; } } return null; } function saveData(obj){ var oTr = getParentByTagName(obj, "TR"); var arr = oTr.getElementsByTagName("input"); var dat = []; //保存行的数据 for(var i=0; i< arr.length; i++){ if (arr[i].type == "text") { dat.push(arr[i].value); } } // 在这里实现保存数据的处理 alert("你要保存的数据是:/n" +dat.join("/n")); } function deleteData(obj){ var oTr = getParentByTagName(obj, "TR"); oTr.parentNode.removeChild(oTr); } function makeTable(data){ if(!data){ return false; } var str = ""; str += "<table >"; for(var i=0; i < data.length; i++){ str += "<tr>"; if(data[i] instanceof Array){ for(var j=0; j < data[i].length; j++){ str += "<td>"; str += "<input type='text' value='" + data[i][j] + "'>" str += "</td>"; } } str += "<td>"; str += "<input type='button' value='保存' οnclick='saveData(this)'>"; str += "<input type='button' value='删除' οnclick='deleteData(this)'>"; str += "</td>"; str += "</tr>"; } str += "</table>"; $("div1").innerHTML = str; } window.onload = function(){ var _data = getData(); makeTable(_data); } // --></mce:script> </head> <body> <div id="div1"> </div> </body> </html>