js操作table对象及页面元素小结

  • 使用html dom document对象的方法

方法 描述 IE F O W3C
close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据。 4 1 9 Yes
getElementById() 返回对拥有指定 id 的第一个对象的引用。 5 1 9 Yes
getElementsByName() 返回带有指定名称的对象集合。 5 1 9 Yes
getElementsByTagName() 返回带有指定标签名的对象集合。 5 1 9 Yes
open() 打开一个流,以收集来自任何 document.write() 或 document.writeln() 方法的输出。 4 1 9 Yes
write() 向文档写 HTML 表达式 或 JavaScript 代码。 4 1 9 Yes
writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。 4 1 9 Yes

这里使用getElementById()方法得到table对象,代码如下:

var complexSeachResult = document.getElementById("complexSeachResult");
  • 得到table对象后,就可以对该table对象进行增加、删除、修改、移动等操作了,下表是table提供的方法

方法 描述 IE F O W3C
createCaption() 为表格创建一个 caption 元素。 4 1 9 Yes
createTFoot() 在表格中创建一个空的 tFoot 元素。 4 1 9 Yes
createTHead() 在表格中创建一个空的 tHead 元素。 4 1 9 Yes
deleteCaption() 从表格删除 caption 元素以及其内容。 4 1 9 Yes
deleteRow() 从表格删除一行。 4 1 9 Yes
deleteTFoot() 从表格删除 tFoot 元素及其内容。 4 1 9 Yes
deleteTHead() 从表格删除 tHead 元素及其内容。 4 1 9 Yes
insertRow() 在表格中插入一个新行。 4 1 9 Yes
moveRow(from,to) 将一行移动到新的位置上。 5 No
refresh() 刷新表格中的内容 4 No

这里用insertRow()插入新行、deleteRow()删除当前行和moveRow(from,to)移动行操作,代码如下:

代码
var row = complexSeachResult.insertRow();  //插入行
complexSeachResult.deleteRow(row.rowIndex);  //删除行
complexSeachResult.moveRow(row.rowIndex, row.rowIndex - 1);  //上移行
complexSeachResult.moveRow(row.rowIndex, row.rowIndex + 1);  //下移行

给行添加页面元素,TableRow对象提供的方法如下:

方法 描述 IE F O W3C
deleteCell() 删除行中的指定的单元格。 4 1 9 Yes
insertCell() 在一行中的指定位置插入一个空的 <td> 元素。 4 1 9 Yes
 这里使用insertCell()方法为row行对象插入td对给td对象创建页面元素,document.createElement()方法创建页面元素,对象的setAttribute方法给元素赋初始值,代码如下:

代码
            var row = complexSeachResult.insertRow();         

            
var btnDel = document.createElement("<input value=\"删除\" type=\"button\" class=\"ButtonStyle\" onclick=\"delRow(this);\" />");  //创建按钮对象
            var btnUpMove = document.createElement("<input type=\"button\" class=\"ButtonMoveUp\" onclick=\"upMoveRow(this);\" />");   
            
var btnDownMove = document.createElement("<input type=\"button\" class=\"ButtonMoveDown\" onclick=\"downMoveRow(this);\" />");

            
var cbLeftBracket = document.createElement("<input type=\"checkbox\" />");  //创建复选框对象
            var ddlFieldValue = document.createElement("<select name=\"ddlFieldValue\" ></select>");  //创建下拉列表对象
            var selRelationalOperators = document.createElement("<select name=\"selRelationalOperators\" ></select>");
            
var txtValue = document.createElement("<input type=\"text\" style=\" 100px\" />");  //创建文本框对象
            var cbRightBracket = document.createElement("<input type=\"checkbox\" />");
            
var selLogicalOperators = document.createElement("<select name=\"selLogicalOperators\" ></select>");

            
//将元素插入到相应的td内
            row.insertCell(0).appendChild(btnDel);  
            row.insertCell(
1).appendChild(btnUpMove);
            row.insertCell(
2).appendChild(btnDownMove);

            row.insertCell(
3).appendChild(cbLeftBracket);
            row.insertCell(
4).appendChild(ddlFieldValue);
            row.insertCell(
5).appendChild(selRelationalOperators);
            row.insertCell(
6).appendChild(txtValue);
            row.insertCell(
7).appendChild(cbRightBracket);
            row.insertCell(
8).appendChild(selLogicalOperators);

            
//给元素赋初始值
            cbLeftBracket.setAttribute("checked", true);  
            //jsSelectConpy(document.getElementById("ddlField"), ddlFieldValue);
            //jsSelectConpy(document.getElementById(
"selRelationalOperators"), selRelationalOperators);
            txtValue.setAttribute(
"value", document.getElementById("txtValue").value);
            cbRightBracket.setAttribute(
"checked", document.getElementById("cbRightBracket").checked);
            //jsSelectConpy(document.getElementById(
"selLogicalOperators"), selLogicalOperators);
  • 对下拉列表框的复制、设置选择项、添加新项等操作的封装,select的一些方法及属性

方法 描述 IE F O W3C
add() 向下拉列表添加一个选项。 4 1 9 Yes
blur() 从下拉列表移开焦点。 4 1 9 Yes
focus() 在下拉列表上设置焦点。 4 1 9 Yes
remove() 从下拉列表中删除一个选项。 4 1 9 Yes

集合 描述 IE F O W3C
options[] 返回包含下拉列表中的所有选项的一个数组。 4 1 9 Yes

属性 描述 IE F O W3C
disabled 设置或返回是否应禁用下拉列表。 5 1 9 Yes
form 返回对包含下拉列表的表单的引用。 4 1 9 Yes
id 设置或返回下拉列表的 id。 4 1 9 Yes
length 返回下拉列表中的选项数目。 4 1 9 Yes
multiple 设置或返回是否选择多个项目。 4 1 9 Yes
name 设置或返回下拉列表的名称。 4 1 9 Yes
selectedIndex 设置或返回下拉列表中被选项目的索引号。 4 1 9 Yes
size 设置或返回下拉列表中的可见行数。 4 1 9 Yes
tabIndex 设置或返回下拉列表的 tab 键控制次序。 5 1 9 Yes
type 返回下拉列表的表单类型。 4 1 9 Yes
属性 描述 IE F O W3C
className 设置或返回元素的 class 属性。 5 1 9 Yes
dir 设置或返回文本的方向。 5 1 9 Yes
lang 设置或返回元素的语言代码。 5 1 9 Yes
title 设置或返回元素的 title 属性。 5 1 9 Yes

这里使用add()方法加加新项,remove()移除项,selectedIndex属性得到当前选择行,options[]集合操作select项集合等,代码如下:

代码
        //select 操作

        
//拷贝select 
        function jsSelectConpy(sourceSelect, targetSelect) {
            
for (var i = 0; i < sourceSelect.options.length; i++) {
                jsAddItemToSelect(targetSelect, sourceSelect.options[i].text, sourceSelect.options[i].value);
            }
            jsSelectItemByValue(targetSelect, sourceSelect.options[sourceSelect.selectedIndex].text);
        }

        
//判断select选项中 是否存在Value="paraValue"的Item 
        function jsSelectIsExitItem(objSelect, objItemValue) {
            
var isExit = false;
            
for (var i = 0; i < objSelect.options.length; i++) {
                
if (objSelect.options[i].value == objItemValue) {
                    isExit 
= true;
                    
break;
                }
            }
            
return isExit;
        }

        
//向select选项中 加入一个Item
        function jsAddItemToSelect(objSelect, objItemText, objItemValue) {
            
//判断是否存在
            if (!jsSelectIsExitItem(objSelect, objItemValue)) {
                
var varItem = new Option(objItemText, objItemValue);
                objSelect.options.add(varItem);
            }
        }

        
//从select选项中 删除一个Item 
        function jsRemoveItemFromSelect(objSelect, objItemValue) {
            
if (jsSelectIsExitItem(objSelect, objItemValue)) {
                
for (var i = 0; i < objSelect.options.length; i++) {
                    
if (objSelect.options[i].value == objItemValue) {
                        objSelect.options.remove(i);
                        
break;
                    }
                }
            }
        }

        
//修改select选项中 value="paraValue"的text为"paraText" 
        function jsUpdateItemToSelect(objSelect, objItemText, objItemValue) {
            
//判断是否存在   
            if (jsSelectIsExitItem(objSelect, objItemValue)) {
                
for (var i = 0; i < objSelect.options.length; i++) {
                    
if (objSelect.options[i].value == objItemValue) {
                        objSelect.options[i].text 
= objItemText;
                        
break;
                    }
                }
            }
        }

        
//设置select中ItemText为选中 
        function jsSelectItemByValue(objSelect, objItemText) {
            
//判断是否存在   
            var isExit = false;
            
for (var i = 0; i < objSelect.options.length; i++) {
                
if (objSelect.options[i].text == objItemText) {
                    objSelect.options[i].selected 
= true;
                    isExit 
= true;
                    
break;
                }
            }
            
return isExit;
        } 

完整实例效果如下图:

使用VS2008编写的实例源代码:/Files/tqlin/jsDemo.rar

参考资料:http://www.w3school.com.cn/

原文地址:https://www.cnblogs.com/tqlin/p/1857329.html