JavaScript遍历HTML表单元素及表单定义

如下JavaScript代码,通过document对象,遍历HTML所有元素(HTML DOM Element )。

<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<head>
<script>
//显示所有存在“ID”属性的HTML元素
function displayallelem(){
   var elems = document.getElementsByTagName("*");

   for(var i=0;i<elems.length;i++){
     if (elems[i].hasAttribute("id")){
       tmp = elems[i].id + ", fieldtype = " + elems[i].getAttribute("fieldtype") + "元素类型=" + elems[i].nodeName;
     alert(tmp);
     }
   }    
}
</script>
</head>
<body>
<h1>表单元素遍历测试 JavaScript</h1>
<p id="demo" fieldtype="test">This is a paragraph.</p>
<div> 
<input id="name" fieldtype="char">名称</input><br>
通过自定义属性“fieldtype”来定义数据类型。<br>
<input id="old" fieldtype="number" value="42">年龄</input><br>
<button id="test" type="button" onclick="displayallelem()">Display Element</button>
</div> 
</body>
</html>

注:代码解释
(1).hasAttribute(“id”),判断是否存在“id”属性,如果存在指定属性,则 hasAttribute() 方法返回 true,否则返回 false;
(2).id,返回元素的 id;
(3).getAttribute(“fieldtype”),返回元素节点的指定属性值。

通过上述代码,引申思考:

  • 在定义表单时,直接通过对元素的属性,定义表单数据项关键信息,例如数据类型;
  • 通过遍历表单,获取表单设计定义,及其业务数据值,直接把二者转换为BSON类型存储高MongoDB中;
  • 展现或编辑时,把表单设计定义为模版,回写设置数据内容即可。

以下内容为参考W3School 提供。

HTML DOM Document 对象

Document 对象
每个载入浏览器的 HTML 文档都会成为 Document 对象。
Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。
提示:Document 对象是 Window 对象的一部分,可通过 window.document 属性对其进行访问。

HTML DOM getElementsByTagName() 方法

  • 定义和用法
getElementsByTagName() 方法可返回带有指定标签名的对象的集合。
  • 语法
document.getElementsByTagName(tagname)
  • 说明

getElementsByTagName() 方法返回元素的顺序是它们在文档中的顺序。
如果把特殊字符串 “*” 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。

HTML DOM Element 对象

HTML DOM 节点

在 HTML DOM (文档对象模型)中,每个部分都是节点:

  • 文档本身是文档节点
  • 所有 HTML 元素是元素节点
  • 所有 HTML 属性是属性节点
  • HTML 元素内的文本是文本节点
  • 注释是注释节点

Element 对象

  • 在 HTML DOM 中,Element 对象表示 HTML 元素。
  • Element 对象可以拥有类型为元素节点、文本节点、注释节点的子节点。
  • NodeList 对象表示节点列表,比如 HTML 元素的子节点集合。
  • 元素也可以拥有属性。属性是属性节点

HTML DOM nodeType 属性

对于每种节点类型,nodeName 和 nodeValue 属性的返回值:

序号节点类型nodeName返回nodeValue返回
1Element元素名null
2Attr属性名称属性值
3Texttext节点的内容
4CDATASectioncdata-section节点的内容
5EntityReference实体引用名称null
6Entity实体名称null
7ProcessingInstructiontarget节点的内容
8Commentcomment注释文本
9Documentdocumentnull
10DocumentType文档类型名称null
11DocumentFragmentdocument 片段null
12Notation符号名称null

参考:
W3School 提供内容:http://www.w3school.com.cn/jsref/dom_obj_document.asp

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖永威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值