[object HTMLTableSectionElement]是什么

Python011

[object HTMLTableSectionElement]是什么,第1张

<thead>为 HTML 文件的表格元素 (tabulardata) , DOM 接口为 HTMLTableSectionElement 。

取得 <thead>的元素对象 (object) 后,可存取元素的全局属性 (global attribute) 。 HTMLTableSectionElement 另有定义属性与方法

rows

insertRow()

deleteRow()

rows 为表格的列数,

insertRow() 用来新增列,

deleteRow() 则用来删除列。举例如下

function run() {

var d = document.getElementsByTagName("thead")

d[0].deleteRow(0)

}

/*

档名:htmldemo122.js

功能:示范 JavaScript 程序

时间:公元 2011 年 8 月 */

此例用 document 对象的 getElementsByTagName() 方法 (method) ,取得标签名称为 thead 的 HTMLCollection 对象,文件的第一个 <thead>元素亦即该 HTMLCollection 索引值为 0 的对象

var d = document.getElementsByTagName("thead")

d[0].deleteRow(0)

然后呼叫 deleteRow() 删除索引值为 0 的列,也就是第一列。

我们以下面的 HTML 文件加载

<!DOCTYPE html>

<html>

<head>

<title>HTML DOM DEMO</title>

<script src="htmldemo122.js" type="text/javascript"></script>

</head>

<body>

<table frame="box" rules="groups" style="width:25%text-align:centermargin:10px">

<colgroup><col></col><col></col></colgroup>

<colgroup><col></col><col></col></colgroup>

<caption>Demo Table</caption>

<thead>

<tr><th>1</th><th>2</th><th>3</th><th>4</th></tr>

</thead>

<tbody>

<tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>

</tbody>

</table>

<input type="button" value="RUN" onclick="run()">

</body>

</html>

<!--

档名:htmldemo122.html

功能:示范 JavaScript 程序

时间:公元 2011 年 8 月 -->

浏览器 (broswer) 开启,按

RUN 后如下

中英文术语对照

表格元素tabular data

对象object

全局属性global attribute

方法method

属性attribute

浏览器broswer

您可以继续参考

HTML 5 范例

HTML 5 快速导览 – 表格元素 <thead>

HTML 元素对象

根元素

<html>(HTMLHtmlElement)

文件数据元素

<head>(HTMLHeadElement)

<title>(HTMLTitleElement)

<base>(HTMLBaseElement)

<link>(HTMLLinkElement)

<meta>(HTMLMetaElement)

<style>(HTMLStyleElement)

<script>(HTMLScriptElement)

<noscript>(HTMLElement)

文件区域元素

<body>(HTMLBodyElement)

<section>(HTMLElement)

<nav>(HTMLElement)

<article>(HTMLElement)

<aside>(HTMLElement)

<h1><h2><h3><h4><h5><h6>(HTMLHeadingElement)

<hgroup>(HTMLElement)

<header>(HTMLElement)

<footer>(HTMLElement)

<address>(HTMLElement)

群组元素

<p>(HTMLParagraphElement)

<hr>(HTMLHRElement)

<pre>(HTMLPreElement)

<blockquote>(HTMLQuoteElement)

<ol>(HTMLOListElement)

<ul>(HTMLUListElement)

<li>(HTMLLIElement)

<dl>(HTMLDListElement)

<dt>(HTMLElement)

<dd>(HTMLElement)

<figure>(HTMLElement)

<figcaption>(HTMLElement)

<div>(HTMLDivElement)

文字层级元素

<a>(HTMLAnchorElement)

<em>(HTMLElement)

<strong>(HTMLElement)

<small>(HTMLElement)

<s>(HTMLElement)

<cite>(HTMLElement)

<q>(HTMLQuoteElement)

<dfn>(HTMLElement)

<abbr>(HTMLElement)

<data>(HTMLDataElement)

<time>(HTMLTimeElement)

<code>(HTMLElement)

<var>(HTMLElement)

<samp>(HTMLElement)

<kbd>(HTMLElement)

<sub>(HTMLElement)

<sup>(HTMLElement)

<i>(HTMLElement)

<b>(HTMLElement)

<u>(HTMLElement)

<mark>(HTMLElement)

<ruby>(HTMLElement)

<rt>(HTMLElement)

<rp>(HTMLElement)

<bdi>(HTMLElement)

<bdo>(HTMLElement)

<span>(HTMLSpanElement)

<br / >(HTMLBRElement)

<wbr>(HTMLElement)

编修记录元素

<ins>(HTMLModElement)

<del>(HTMLModElement)

内嵌媒体元素

<img>(HTMLImageElement)

<iframe>(HTMLIFrameElement)

<embed>(HTMLEmbedElement)

<object>(HTMLObjectElement)

<param>(HTMLParamElement)

<video>(HTMLVideoElement)

<audio>(HTMLAudioElement)

<source>(HTMLSourceElement)

<track>(HTMLTrackElement)

<canvas>(HTMLCanvasElement)

CanvasRenderingContext2D

CanvasRenderingContext2D.canvas

CanvasRenderingContext2D.save()

CanvasRenderingContext2D.restore()

CanvasRenderingContext2D.scale()

CanvasRenderingContext2D.rotate()

CanvasRenderingContext2D.translate()

CanvasRenderingContext2D.transform()

CanvasRenderingContext2D.setTransform()

CanvasRenderingContext2D.globalAlpha

CanvasRenderingContext2D.globalCompositeOperation

CanvasRenderingContext2D.strokeStyle

CanvasRenderingContext2D.fillStyle

CanvasRenderingContext2D.createLinearGradient()

CanvasRenderingContext2D.createRadialGradient()

CanvasGradient 对象

CanvasGradient.addColorStop()

CanvasRenderingContext2D.createPattern()

CanvasRenderingContext2D.lineWidth

CanvasRenderingContext2D.lineCap

CanvasRenderingContext2D.lineJoin

CanvasRenderingContext2D.miterLimit

CanvasRenderingContext2D.shadowOffsetX

CanvasRenderingContext2D.shadowOffsetY

CanvasRenderingContext2D.shadowBlur

CanvasRenderingContext2D.shadowColor

CanvasRenderingContext2D.clearRect()

CanvasRenderingContext2D.fillRect()

CanvasRenderingContext2D.strokeRect()

CanvasRenderingContext2D.beginPath()

CanvasRenderingContext2D.closePath()

CanvasRenderingContext2D.moveTo()

CanvasRenderingContext2D.lineTo()

CanvasRenderingContext2D.quadraticCurveTo()

CanvasRenderingContext2D.bezierCurveTo()

CanvasRenderingContext2D.arcTo()

CanvasRenderingContext2D.rect()

CanvasRenderingContext2D.arc()

CanvasRenderingContext2D.fill()

CanvasRenderingContext2D.stroke()

CanvasRenderingContext2D.drawSystemFocusRing()

CanvasRenderingContext2D.drawCustomFocusRing()

CanvasRenderingContext2D.scrollPathIntoView()

CanvasRenderingContext2D.clip()

CanvasRenderingContext2D.isPointInPath()

CanvasRenderingContext2D.font

CanvasRenderingContext2D.textAlign

CanvasRenderingContext2D.textBaseline

CanvasRenderingContext2D.fillText()

CanvasRenderingContext2D.strokeText()

CanvasRenderingContext2D.measureText()

CanvasRenderingContext2D.drawImage()

CanvasRenderingContext2D.createImageData()

CanvasRenderingContext2D.getImageData()

CanvasRenderingContext2D.putImageData()

<map>(HTMLMapElement)

<area>(HTMLAreaElement)

<applet>(HTMLAppletElement)

表格元素

<table>(HTMLTableElement)

<caption>(HTMLTableCaptionElement)

<colgroup>(HTMLTableColElement)

<col>(HTMLTableColElement)

<tbody>(HTMLTableSectionElement)

<thead>(HTMLTableSectionElement)

<tfoot>(HTMLTableSectionElement)

<tr>(HTMLTableRowElement)

<td>(HTMLTableDataCellElement)

<th>(HTMLTableHeaderCellElement)

窗体元素

<form>(HTMLFormElement)

<fieldset>(HTMLFieldSetElement)

<legend>(HTMLLegendElement)

<label>(HTMLLabelElement)

<input>(HTMLInputElement)

<button>(HTMLButtonElement)

<select>(HTMLSelectElement)

<datalist>(HTMLDataListElement)

<optgroup>(HTMLOptGroupElement)

<option>(HTMLOptionElement)

<textarea>(HTMLTextAreaElement)

<keygen>(HTMLKeygenElement)

<output>(HTMLOutputElement)

<progress>(HTMLProgressElement)

<meter>(HTMLMeterElement)

交互式元素

<details>(HTMLDetailsElement)

<summary>(HTMLElement)

<command>(HTMLCommandElement)

<menu>(HTMLMenuElement)

在Ruby中,一切皆是对象。

下面举一个例子来更直观地说明Ruby语言的这一特点。

在Java中,求一个数的绝对值的代码如下。 int c = Math.abs(-20)而在Ruby语言中,一切皆是对象,也就是说“-20”这个数也是一个对象,因此,求一个数绝对值的Ruby代码形式如下。 c = -20.abs 这样的代码编写方式是不是更形象一些呢?

Rails 框架是一个更符合实际需要而且更高效的Web开发框架,Rails结合了PHP体系的优点(快速开发)和Java体系的优点(程序规整)。Rails是一个全栈式的MVC框架,换句话说,通过Rails可以实现MVC模式中的各个层次,并使它们无缝地协同运转起来。 在实际开发一个MVC模式的Web应用项目时,如果使用Java开发,需要用到Struts、Hibernate和Spring等框架,而且需要额外整合3个框架开发出的内容。而使用Ruby语言开发相同的项目时,只需要用到Rails框架就可以完成。

RoR的效率肯定要比Java高一个数量级,这确实是事实,比PHP至少也要高好几倍,这也是事实,这一点在这篇文章中不展开了,但是为什么开发效率这么高,我也想谈谈我的看法,当然还很不成熟的看法:一、主要原因是ruby语言的语法非常强大我记得庄表伟说过一个观点:“框架是强化的语法”,意思就是说语法比较弱,所以才需要n多框架,如果语法很强,框架就很少。这一点在Java和ruby身上得到了验证。

1、ruby的open class VS Java的AOP,反射、动态代理,字节码增强等技术JDK1.3开始引入反射,就已经打开了Java这种静态类型语言通往动态类型语法的潘多拉魔盒。随后的动态代理技术,字节码增强技术,静态和动态的AOP技术开始层出不穷,为什么呢?就是需要在程序运行期动态改变对象的行为。但是对于ruby来说是open class的,语法级别上就支持程序运行期修改对象行为,所以Java需要很复杂技术才能实现的功能对于ruby来说就是非常简单的搞定了。

2、ruby的duck typing VS Java的IoC,泛型Java的IoC不用说了,泛型在库级别也开始广泛使用。IoC就是根据对象行为来进行对象组装,泛型就是在不确定对象行为的情况下确定对象的交互。但是ruby的对象行为是在运行期才确定的,天然就是泛型的,行为不是静态的,所以不需要IoC。

3、ruby的block,closure VS Java的匿名内部类大家对spring的Template肯定印象很深刻,但是这是ruby标准的用法,所以各种资源释放,异常处理在语法级别上就支持的很好,做起来很简单。

4、ruby的Meta programming VS Java缺乏method_missing机制大家耳熟能详了,Java没有这么强的Meta programming,很多ruby magic耍不出来。

5、脚本语言 VS 编译语言这也是一个很大的优势,脚本编程速度确实快。

二、rails框架确实做的很棒

1、full-stackrails是一个概念一致的fullstack框架,不知道为什么,在Java世界目前只有Rife这一个可以和RoR相提并论的fullstack框架,但是Rife的实现并不好(作者从PHP转过来的,和DHH爆发过口水战)。不过因为底层语法支持的不同,用Java是做不出来RoR框架的。因此也有人用Groovy做Grails,不过这帮人不太争气。

2、CoC这个不用说了,现在很多Java框架开始吸收这一点。

3、为web开发良身打造web开发需要用到各种技术全部提供,绝对的贴心,如果用Java,这些东西都需要自己集成或者自己实现,省了一大堆麻烦事。

4、开发测试部署快速这个不说了,Java劣势太明显了关于“效率提高的来源”问题,我的理解就是次要复杂性被ROR降低到了极致。说的难听一点,不是ROR太聪明,而是我们以前做得蠢事太多了。

各种各样的xml, taglib,单元测试困难 ... ...做过项目的人都知道这些次要复杂性很多情况下真的是要命的。ROR没有降低软件的内在复杂性,也就是业务问题。但是它把复杂性降低到无限趋近于业务复杂性,也有人称ROR是Web开发的DSL。而解决业务问题正是人发挥聪明才智的地方,ROR不能代替人,但是它把人从次要复杂性的泥潭之中解救了出来。

参考资料:南京赛威信息科技

Meta- 这个前缀在希腊语中的本意是「在…后,越过…的」,类似于拉丁语的 post-,比如 metaphysics 就是「在物理学之后」,这个词最开始指一些亚里士多德的著作,因为它们通常排序在《物理学》之后。

但西方哲学界在几千年中渐渐赋予该词缀一种全新的意义:关于某事自身的某事。比如 meta-knowledge 就是「关于知识本身的知识」,meta-data 就是「关于数据的数据」,meta-language 就是「关于语言的语言」,而 meta-programming 也是由此而来,是「关于编程的编程」。

弄清了词源和字面意思,可知大陆将 meta- 这个前缀译为「元」并不恰当。台湾译为「后设」,稍微好一点点,但仍旧无法望文生义。也许「自相关」是个不错的选择,「自相关数据」、「自相关语言」、「自相关编程」——但是好像又太罗嗦了。

Anyway。先看看 meta-data:「我的电话是 +86 123 4567 8910」——这是一条数据;「+86 123 4567 8910 有十三个数字和一个字符,前两位是国家代码,后面是一个移动电话号码」是关于前面那条数据的数据。那么照猫画虎,怎样才算 meta-programming 呢?泛泛来说,只要是与编程相关的编程就算是 meta-programming 了——比如,若编程甲可以输出 A - Z,那么写程序甲算「编程」;而程序乙可以生成程序甲(也许还会连带着运行它输出 A - Z),那么编写程序乙的活动,就可以算作 meta-programming,「元编程」。注意,程序甲和程序乙并不一定是同一种语言:

('A'..'Z').each do |char|

system("python -c 'print \"#{char}\"'")

end

如此说来,inline SQL 甚至动态生成 HTML 也是元编程了?抠定义的话是这样吧。

不过 metaprogramming 更狭义的意思应该是指「编写能改变语言语法特性或者运行时特性的程序」。换言之,一种语言本来做不到的事情,通过你编程来修改它,使得它可以做到了,这就是元编程。本版同文提及 method_missing,那么 Wat — Destroy All Software Talks 之中给出了运行时元编程的经典范例:

>>ruby has no bare words

NameError: undefined local variable or method `words' for main:Object

from (irb) 1

>>def method_missing(*args)args.join(" ")end

=>nil

>>ruby has bare words

=>"ruby has bare words"

>>bare words can even have bangs!

=>"bare words can even have bangs!"

C、C++、Python、JavaScript…… 多数流行的语言或多或少都有元编程能力;Lisp 诸方言更是以元编程为基本。而 Ruby 更是因为元编程易用又强大,被许多人拿来写 DSL,因为元编程可以捏出「本不存在的语法特性」来让书写 DSL 变得简单。