JavaScript如何动态创建table表格

两种JavaScript动态创建table表格的方法,分享给大家,具体实现如下

方法一:最原始的方法,创建一一元素

var a1=document.createElement("table");

var a2=document.createElement("tbody");

var a3=document.createElement("tr");

var a4=document.createElement("td");

//开始appendchild()追加各个元素

a3.appendChild(a4);

a2.appendChild(a3);

a1.appendChild(a2);

方法二:利用table对象里面含有的函数:插入行和插入列

var tabNode=document.createElement("table");

var trNode=tabNode.insertRow();

var tdNode=trNode.insertCell;

tabNode.innerHTML="这是采用table对象里面的函数创建的"
注意:利用原始方法,一个个createElement时候,必须要添加一个tbody对象
//获取<table>标签的兄弟节点

// var node3=tabnode.previousSibling;//前一个节点 获取对此对象的上一个兄弟对象的引用。

// alert("previous--node3:"+node3);//#text

// 如果<table>后面有回车符,高版本的IE和火狐会识别成 “空白文本”#text,

// 而低版本IE会直接越过-----不光是<table>节点,其它节点也一样

// 表格的,<table>标签和<tr>标签中间,其实还隐藏着一个<tbody>标签----表格体

动态的创建和删除:
创建表格,通过输入的值:

function createTable(){
    tableNode=document.createElement("table");//获得对象
   tableNode.setAttribute("id","table")
   var row=parseInt(document.getElementsByName("row1")[0].value);//获得行号
   //alert(row);
   if(row<=0 || isNaN(row) ){
    alert("输入的行号错误,不能创建表格,请重新输入:");
    return;
   }
   var cols=parseInt(document.getElementsByName("cols1")[0].value);
   if(isNaN(cols) || cols<=0){
    alert("输入的列号错误,不能创建表格,请重新输入:");
    return;
   }
   //上面确定了 现在开始创建
   for(var x=0;x<row;x++){
    var trNode=tableNode.insertRow();
    for(var y=0;y<cols;y++){
     var tdNode=trNode.insertCell();
     tdNode.innerHTML="单元格"+(x+1)+"-"+(y+1);
    }
   }
   document.getElementById("div1").appendChild(tableNode);//添加到那个位置
  } 

删除行:

function delRow(){
  //要删除行,必须得到table对象才能删除,所以在创建的时候必须要设置table对象的 id 方便操作
  var tab=document.getElementById("table");//获得table对象
  if(tab==null){
   alert("删除的表不存在!")
   return;
  }
  var rows=parseInt(document.getElementsByName("delrow1")[0].value);//获得要删除的对象
  if(isNaN(rows)){
   alert("输入的行不正确。请输入要删除的行。。。");
   return;
  }
  if (rows >= 1 && rows <= tab.rows.length) {
   tab.deleteRow(rows-1);
   }else{
    alert("删除的行不存在!!");
    return ;
   } 

 }

删除列:

//删除列要麻烦些, 要通过行来进行删除
  // 一行的cells的长度就是列的个数
  //tab.rows[x].deleteCell(cols-1)
  function delCols(){
   //获得table对象
   var tab=document.getElementById("table"); 

   if(tab==null){
    alert("删除的表不存在!!");
    return ;
   }
   //获得文本框里面的内容
   var cols=parseInt(document.getElementsByName("delcols1")[0].value);
   //检查是否可靠
   if(isNaN(cols)){
    alert("输入不正确。请输入要输出的列。。");
    return;
   }
   if(!(cols>=1 && cols<tab.rows[0].cells.length)){
    alert("您要删除的行不存在!!");
    return;
   }
   for(var x=0;x<tab.rows.length;x++){//所有的行
    tab.rows[x].deleteCell(cols-1);
   }
  }

完整的代码:

<!DOCTYPE html>
<html>
 <head>
 <title>createTable2.html</title>
 <style type="text/css">
  table{
   border:#00ffff solid 2px;
   border-collapse:collapse;
  }
  td{
   border:#8080ff solid 2px;
    padding:10px;
  }
 </style>
 <script type="text/javascript">
  var tableNode;
  function createTable(){
    tableNode=document.createElement("table");//获得对象
   tableNode.setAttribute("id","table")
   var row=parseInt(document.getElementsByName("row1")[0].value);//获得行号
   //alert(row);
   if(row<=0 || isNaN(row) ){
    alert("输入的行号错误,不能创建表格,请重新输入:");
    return;
   }
   var cols=parseInt(document.getElementsByName("cols1")[0].value);
   if(isNaN(cols) || cols<=0){
    alert("输入的列号错误,不能创建表格,请重新输入:");
    return;
   }
   //上面确定了 现在开始创建
   for(var x=0;x<row;x++){
    var trNode=tableNode.insertRow();
    for(var y=0;y<cols;y++){
     var tdNode=trNode.insertCell();
     tdNode.innerHTML="单元格"+(x+1)+"-"+(y+1);
    }
   }
   document.getElementById("div1").appendChild(tableNode);//添加到那个位置
  }
  function delRow(){
   //要删除行,必须得到table对象才能删除,所以在创建的时候必须要设置table对象的 id 方便操作
   var tab=document.getElementById("table");//获得table对象
   if(tab==null){
    alert("删除的表不存在!")
    return;
   }
   var rows=parseInt(document.getElementsByName("delrow1")[0].value);//获得要删除的对象
   if(isNaN(rows)){
    alert("输入的行不正确。请输入要删除的行。。。");
    return;
   }
   if (rows >= 1 && rows <= tab.rows.length) {
    tab.deleteRow(rows-1);
    }else{
     alert("删除的行不存在!!");
     return ;
    } 

  }
  //删除列要麻烦些, 要通过行来进行删除
  // 一行的cells的长度就是列的个数
  //tab.rows[x].deleteCell(cols-1)
  function delCols(){
   //获得table对象
   var tab=document.getElementById("table"); 

   if(tab==null){
    alert("删除的表不存在!!");
    return ;
   }
   //获得文本框里面的内容
   var cols=parseInt(document.getElementsByName("delcols1")[0].value);
   //检查是否可靠
   if(isNaN(cols)){
    alert("输入不正确。请输入要输出的列。。");
    return;
   }
   if(!(cols>=1 && cols<tab.rows[0].cells.length)){
    alert("您要删除的行不存在!!");
    return;
   }
   for(var x=0;x<tab.rows.length;x++){//所有的行
    tab.rows[x].deleteCell(cols-1);
   }
  } 

 </script>
 </head> 

 <body>
 行:<input type="text" name="row1"/>
 列:<input type="text" name="cols1"/>
 <input type="button" value="创建表格" onclick="createTable()"/><br/> 

 <input type="text" name="delrow1"/>
 <input type="button" value="删除行" onclick="delRow()"/><br/> 

 <input type="text" name="delcols1"/>
 <input type="button" value="删除列" onclick="delCols()"/><br>
 <div id="div1"></div>
 </body>
</html> 

效果演示:

以上就是为大家分享的两种JavaScript动态创建table表格的方法,希望大家喜欢。

(0)

相关推荐

  • JS动态创建元素的两种方法

    本文为大家分享了js创建元素的两种方法供大家参考,具体内容如下 1)将需要创建的元素,以字符串的形式拼接:找到父级元素,直接对父级元素的innnerHTML进行赋值. 2)使用Document.Element对象自带的一些函数,来实现动态创建元素(创建元素 => 找到父级元素 => 在指定位置插入元素) 一.字符串拼接形式 为了更好的理解,设定一个应用场景. 随机生成一组数字,将这组数据渲染为条形图的形式,放在div[id="container"]中,如下图 <div

  • javascript实现dom动态创建省市纵向列表菜单的方法

    本文实例讲述了javascript实现dom动态创建省市纵向列表菜单的方法.分享给大家供大家参考.具体实现方法如下: <!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/xhtm

  • 基于jquery的动态创建表格的插件

    废话少说直接进入主题, 表格功能: 1.添加 2.删除 3.获取值 4.动态填充数据 5.动态设置焦点 6.键盘左右上下键控制单元格焦点 7.单元格添加正则验证功能 WebForm4.aspx 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="table.WebForm4" %&

  • js实现动态创建的元素绑定事件

    新创建的元素用传统的办法无法绑定,需要用live方法. 例: $('.rule').live('mouseover', function () { $(this).addClass("cancelable"); 以上这篇js实现动态创建的元素绑定事件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • JS使用eval()动态创建变量的方法

    本文实例讲述了JS使用eval()动态创建变量的方法.分享给大家供大家参考,具体如下: 一.什么是eval()函数? eval_r()函数可计算某个字符串,并执行其中的的 JavaScript 代码. 二.如何动态定义变量? 既然eval()能够计算字符串,何不将定义变量的写法转换为字符串,然后放入eval_r()函数内进行执行,形如: var defineStr = "var number_"+i.toString(); eval_r(defineStr); 这样就定义了一个变量,你

  • jQuery动态创建html元素的常用方法汇总

    本文实例讲述了jQuery动态创建html元素的常用方法,在使用jQuery进行WEB程序设计的时候非常有用.分享给大家供大家参考.具体方法如下: 一般来说,可以通过以下几种方式动态创建html元素: 1.使用jQuery创建元素的语法 2.把动态内容存放到数组中,再遍历数组动态创建html元素 3.使用模版 1.使用jQuery动态创建元素追加到jQuery对象上. <meta http-equiv="Content-Type" content="text/html;

  • js动态创建及移除div的方法

    本文实例讲述了js动态创建及移除div的方法.分享给大家供大家参考.具体实现方法如下: //创建div function createDiv(){ if(document.getElementByIdx_x("newD")!=null) document.body.removeChild(document.getElementByIdx_x("newD")); var Div = document.create_rElement("div");/

  • javascript与jquery动态创建html元素示例

    本文实例讲述了javascript与jquery动态创建html元素的方法.分享给大家供大家参考,具体如下: 1.javascript创建元素 创建select var select = document.createElement("select"); elect.options[0] = new Option("加载项1", "value1"); select.options[1] = new Option("加载项2",

  • js 动态创建 html元素

    js学习之动态创建html元素 body{margin:0;padding:0;} .sky{background:#000;width:1000;height:500px; position:relative;} #s{ background:#FFF; width:1px; height:1px; overflow:hidden; position:absolute;} 没事造星星玩 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • 动态创建按钮的JavaScript代码

    废话不多说了,直接给大家贴js代码了,具体代码如下所示: <!doctype html> <html> <head> <meta charset="UTF-8" /> <title>Document</title> <script type="text/javascript"> var i = 0; function addInput(){ var o = document.crea

  • JS动态创建DOM元素的方法

    本文实例讲述了JS动态创建DOM元素的方法.分享给大家供大家参考.具体如下: 近日,因工作需要,需要通过点击某个元素后, 动态创建一个DOM元素并显示,因此写了一些相关的JS函数,在此记录,以作备忘: /* 动态创建DOM元素的相关函数支持 */ /* 获取以某个元素的DOM对象 @obj 该元素的ID字符串 */ function getElement(obj) { return typeof obj=='string'?document.getElementById(obj):obj; }

  • jquery 动态创建元素的方式介绍及应用

    一般动态创建元素可以通过两种方式 1.Dom HTml 复制代码 代码如下: var select = document.createElement("select"); select.options[0] = new Option("加载项1", "value1"); select.options[1] = new Option("加载项2", "value2"); select.size = "

随机推荐