js如何动态创建表格(两种方法)

一、总结

一句话总结:

1、方法一:写好创建表格的html代码,将之赋值给div的innerHTML。

2、方法二、直接用创建好的table元素的方法insertRow和insertCell来实现。

3、指定行列创建表格:通过循环。

1、table元素的动态(js中)常用属性有哪些?

解答:tab.width=500;  tab.border=2;。

2、如何得到某个div的第一个table?

解答:var ta=div1.getElementsByTagName('table')[0]。

3、html中元素如何移除自己?

解答:先找父节点,然后移除父节点的子节点。ta.parentNode.removeChild(ta)。

4、insertRow(i)是谁的方法?

解答:table的。

5、insertCell(j)是谁的属性?

解答:row的,tab.rows[i].insertCell(j).innerHTML=i+''+j;。

6、如何访问表格中的第i行的第j列的元素?

解答: tab.rows[i].cells[j].style.background='green'。

7、如何通过创建html语句的方式给div加表格?

解答:var tab='<table border=1 width=500">'  tab+='</table>';  div1.innerHTML=tab。

二、js如何动态创建表格(两种方法)

1、创建指定行,列的表格的案例说明

    • 实例描述:

      根据用户输入数值,创建指定行,列的表格

      案例006/007分别采用不同的思路实现同样的功能

2、表格相关的属性和方法

1.1 Table 对象集合
  • cells[] 返回包含表格中所有单元格的一个数组。

    语法:tableObject.cells[]

  • rows[] 返回包含表格中所有行的一个数组。

    rows 集合返回表格中所有行的一个数组。该集合包括 thead、tfoot 和 tbody 中定义的所有行。

  • tBodies[] 返回包含表格中所有 tbody 的一个数组。

    注:不常用

1.2 Table 对象方法
  • createCaption() 为表格创建一个 caption 元素。
  • createTFoot() 在表格中创建一个空的 tFoot 元素。
  • createTHead() 在表格中创建一个空的 tHead 元素。
  • deleteCaption() 从表格删除 caption 元素以及其内容。
  • deleteRow() 从表格删除一行。
  • deleteTFoot() 从表格删除 tFoot 元素及其内容。
  • deleteTHead() 从表格删除 tHead 元素及其内容。
  • insertRow() 在表格中插入一个新行。
1.3 Table 对象常用属性
  • frame 设置或返回表格的外部边框。
  • rules 设置或返回表格的内部边框(行线)。
  • caption 对表格的 caption 元素的引用。
  • cellPadding 设置或返回单元格内容和单元格边框之间的空白量。
  • cellSpacing 设置或返回在表格中的单元格之间的空白量。
  • summary 设置或返回对表格的描述(概述)。
  • tFoot/tHead 返回表格的 TFoot /tHead对象。如果不存在该元素,则为 null。
  • border/width/id......
1.4 TableRow 对象
    • TableRow 对象方法

      • deleteCell() 删除行中的指定的单元格

        语法:tablerowObject.deleteCell(index)

      • insertCell() 在一行中的指定位置插入一个空的 td 元素。

        tablerowObject.insertCell(index)

        返回值:一个 TableCell 对象,表示新创建并被插入的 元素。

    • TableRow 对象属性
      • vAlign 设置或返回在行中的数据的垂直排列方式。

        语法:tablerowObject.vAlign=top|bottom|middle|baseline

      • rowIndex 返回该行在表中的位置。

        语法:tablerowObject.rowIndex

      其他:align/innerHTML/id......

1.5 TableCell 对象
    • TableCell 对象属性

      • abbr 设置或返回单元格中内容的缩写版本。
      • axis 设置或返回相关单元格的一个逗号分隔的列表。
      • cellIndex 返回单元格在某行的单元格集合中的位置。
      • colSpan 单元格横跨的列数。
      • rowSpan 设置或返回单元格可横跨的行数。
      • vAlign/width/id/align......

3、案例截图

4、代码

代码1:
 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>演示文档</title>
<style type="text/css">
</style>
</head>
<body>
<h3>动态创建表格1</h3>
行数 <input type="text" value="5" id="rows">
列数 <input type="text" value="5" id="cols">
<input type="button" value="创建表格" onclick="creatTab()">
<div id="div1"></div>
<script>
function creatTab(){
rows=document.getElementById('rows').value
cols=document.getElementById('cols').value
div1=document.getElementById('div1')
// alert(rows+'\n'+cols)
var tab='<table border=1 width=500">'
for(var i=0;i<rows;i++){
tab+='<tr>'
for(var j=0;j<cols;j++){
tab+="<td style='background:green'>"+i+j+"</td>"
}
tab+='</tr>'
}
tab+='</table>';
div1.innerHTML=tab
}
</script>
</body>
</html>
代码2:
 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>演示文档</title>
<style type="text/css">
</style>
</head>
<body>
<h3>动态创建表格1</h3>
行数 <input type="text" value="5" id="rows">
列数 <input type="text" value="5" id="cols">
<input type="button" value="创建表格" onclick="creatTab()">
<div id="div1"></div>
<script>
function creatTab(){
rows=document.getElementById('rows').value
cols=document.getElementById('cols').value
div1=document.getElementById('div1');
var ta=div1.getElementsByTagName('table')[]
if (ta) {ta.parentNode.removeChild(ta)}
var tab = document.createElement("table");
tab.width=500;
tab.border=2;
for(var i=0;i<rows;i++){
tab.insertRow(i)
for(var j=0;j<cols;j++){
tab.rows[i].insertCell(j).innerHTML=i+''+j;
tab.rows[i].cells[j].style.background='green'
}
} document.getElementById("div1").appendChild(tab) }
</script>
</body>
</html>

三、测试题-简答题

1、table元素的动态(js中)常用属性有哪些?

解答:tab.width=500;  tab.border=2;。

2、如何得到某个div的第一个table?

解答:var ta=div1.getElementsByTagName('table')[0]。

3、html中元素如何移除自己?

解答:先找父节点,然后移除父节点的子节点。ta.parentNode.removeChild(ta)。

4、insertRow(i)是谁的方法?

解答:table的。

5、insertCell(j)是谁的属性?

解答:row的,tab.rows[i].insertCell(j).innerHTML=i+''+j;。

6、如何访问表格中的第i行的第j列的元素?

解答: tab.rows[i].cells[j].style.background='green'。

7、如何通过创建html语句的方式给div加表格?

解答:var tab='<table border=1 width=500">'  tab+='</table>';  div1.innerHTML=tab。

js如何动态创建表格(两种方法)的更多相关文章

  1. OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法

    <span style="font-size:24px;">//////第一种方法 // NSMutableArray *arr = [NSMutableArray a ...

  2. js/jq动态创建表格的行与列

    之前做了一个项目,需求是能动态创建表格行,动态创建表格的列,度了很多资料,都没有动态创建列的插件,所以自己动手写了一个 需求大概是(下图) 1.动态添加一行.2.动态添加一列,3.删除行.4.删除列, ...

  3. java动态代理的两种方法

    动态代理,有两种情况,第一种是有接口的情况下,你可以选择为jdk自带的动态代理的方式来编写程序,但你想要为一个实在的类编写动态代理的方式的话,这时候就必须选择一些开源的lib包,如cglib包,同时还 ...

  4. SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法

    软件152 尹以操 首先谢谢大佬的简书文章:http://www.jianshu.com/p/45ad65690e33# 这篇文章中讲的是spring中使用spring data jpa,使用了xml ...

  5. php导出表格两种方法 ——PhpExcel的列子

    php常用的导出表格有两种方法,第一种是输出表格,这种方法打开的时候有警告提示,一般导出表格会用phpexcel,这个导出比较灵活,而且还可以设置表格的样式. 第一种导出例子 /** * 执行导出 * ...

  6. vue父组件向子组件动态传值的两种方法

    在一些项目需求中需要父组件向子组件动态传值,比如我这里的需求是,父组件动态通过axios获取返回的图片url数组然后传给子组件,上传图片的子组件拿到该数组后进行遍历并展示图片,因为有时候获取到的会是空 ...

  7. java_线程创建的两种方法

    线程创建的方法有两种: 一 继承Thread类: public class ThreadTest { public static void main(String[] args) { //4)在mai ...

  8. iOS: JS和Native交互的两种方法

    背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)stringByEvaluatingJavaScriptFromString:(NS ...

  9. js笔记(3)--js实现数组转置(两种方法)

      js实现数组转置   第一种方法:   <script>     window.onload=function(){     var array1=[[11,22,33,333],[4 ...

随机推荐

  1. JS 数字格式千分位相互转换

    /** * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要保留的小数位(Number) * @param isThousa ...

  2. 大家好,我是FansUnion,雷文

    友情提示 以下是我在CSDN Code讨论组的自我介绍. 很多CSDN网友,总是重复地问我一些比较常见的问题. 我已经开始机械性地回答网友的问题了. 自我介绍 我的CSDN等媒体的ID,大多带有Fan ...

  3. Costura.Fody

    使用Costura.Fody将源DLL合并到目标EXE 本文为原创文章,如转载,请在网页明显位置标明原文名称.作者及网址,谢谢! 一.本文主要是使用Costura.Fody工具将源DLL合并到目标EX ...

  4. iOS_06_基本运算符

    一.算术运算 c语言一共有34种运算符,包括了常见的加减乘除 1.加法运算+ # 除了能做加法运算,还能表示正号:+5.+90 2.减法运算- # 除了能做减法运算,还能表示符号:-10.-200 3 ...

  5. regexp模式匹配+location页面跳转+cookie/localstorage本地存储

    学习js的过程中,根据知识点编写一些code进行测试,以便检验. 这段程序使用了以下知识点: 1.regexp,对数据进行模式匹配 2.使用location对象进行页面跳转. 3.cookie/loc ...

  6. 【习题 3-10 UVA - 1587】Box

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举某个顶角的三个相邻面就好. 看看这三个相邻面有没有对应的面. 以及3个相邻面的6个边. 能否分成2个a,2个b,2个c 也即每个 ...

  7. 洛谷—— P1765 手机_NOI导刊2010普及(10)

    https://www.luogu.org/problem/show?pid=1765#sub 题目描述 一般的手机的键盘是这样的: 1 2 abc 3 def 4 ghi 5 jkl 6 mno 7 ...

  8. [D3] Start Visualizing Data Driven Documents with D3 v4

    It’s time to live up to D3’s true name and potential by integrating some real data into your visuali ...

  9. LA 2191 - Potentiometers

    看题传送门 Fenwick树的应用~~~ #include <cstdio> #include <cstring> #include<algorithm> usin ...

  10. mysql数据库各存储引擎比較

    mysql数据库差别于其它数据库的最重要的一个特点是其插件式的表存储引擎,存储引擎是基于表的.而不是数据库 InnoDB存储引擎:        支持事务,其设计目标主要面向在线事务处理(OLTP)的 ...