4_13.DOM--常用HTML DOM对象:Image\Table\Select\Form

之前介绍的创建新元素以及添加到DOM树等操作,都是使用核心DOM的API进行操作的。
HTML DOM对一些常用的,复杂的元素对象进行了部分简化

Image对象,Table对象,Select对象,Form对象

Image对象

image对象,代表< img>元素
< img>标签每出现一次,一个image对象就会被创建
HTML DOM提供了更加方便的创建image对象的API
new Image();

Table对象

table对象,代表一个html表格
每一对table标签,都是一个table对象
HTML DOM提高了更加方便的创建表格中的元素的API
在table中创建一个行分组:
table.createTHead/TBody/TFoot();

创建同时,就将行分组添加到table
返回新创建的行分组对象
删除一个行分组
table.deleteTHead/TFoot();
获取一个行分组
table.tHead/tFoot();
table.tBodies[i]

行:
在行分组中创建一个行
Table/THead/TBody/TFoot.insertRow(i)

i为下标位置,如果省略,则表示在末尾添加
如果直接在Table中创建,则会自动创建到最后一个TBody中
返回新创建的行对象
获取指定范围内的所有行:Table/THead/TBody/TFoot.rows
删除指定范围内下标为i的行:Table/THead/TBody/TFoot.deleteRow(i)
获取当前行在整个表中的下标:tr.rowIndex

列:
在行中创建一个列
tr.insertCell(i)

i为下标位置,如果省略,则表示在末位添加
返回新创建的列对象
获取指定行中的所有列:tr.cells
删除指定行中下标为i的列:tr.deleteCell(i)

var div=document.getElementById("div");
var table=document.createElement("table")

//创建表头/体/尾

var thead=table.createTHead();
var tbody=table.createTBody();
var tfoot=table.createTFoot();

//thead添加行/列
var tr=thead.insertRow();
for(var i=0;i<5;i++){
	var td=tr.insertCell().innerHTML=i;
}
//tbody添加行/列
for(var i=0;i<5;i++){
	var tr=tbody.insertRow();
	for(var j=0;j<5;j++){
		var td=tr.insertCell().innerHTML=(i+"-"+j);
	}
	var td=tr.insertCell(3).innerHTML="new insertTD";
}
tbody.insertRow(2).innerHTML="new insertTR";

//tfoot添加行/列

div.appendChild(table);

4-10:DOM动态创建表格:

优化代码:

var json=[
	{"name":"A","score":"100","age":18},
	{"name":"B","score":"90","age":19},
	{"name":"C","score":"80","age":20}
];

var div=document.getElementById("div");
//创建table
var table=document.createElement("table");
//表头thead
var thead=table.createTHead();
//thead内行/列
var tr=thead.insertRow();
for(key in json[0]){
	tr.insertCell().innerHTML=key;
}
//thead添加删除选型
thead.rows[0].insertCell().innerHTML="Delete";

//表体tbody
var tbody=table.createTBody();
//tbody内行/列
for(var i=0;i<json.length;i++){
	var tr=tbody.insertRow();
	for(key in json[i]){
		tr.insertCell().innerHTML=json[i][key];
	}
	//tbody添加删除按钮
	var td=tr.insertCell()
	var btn=document.createElement("button");
	btn.innerHTML="Delete";
	td.appendChild(btn);
}

//表table添加到div
div.appendChild(table);
//功能:删除
//1.构建DOMTree
//2.查找触发事件的元素:删除按钮
var btns=tbody.getElementsByTagName("button");
//3.绑定事件
for(var i=0;i<btns.length;i++){
	btns[i].onclick=function(){
		table.deleteRow(this.parentElement.parentElement.rowIndex);
	}
}

Select对象

Select对象,代表HTML表单中的一个select元素
每一对select标签都是一个Select对象

常用属性:
.selectedIndex:获得当前选中项的下标
.value:获得当前选中项的值
.options:获得select下的所有option的集合
.length:表示选项的总个数。修改length的值,可以添加或删除option

常用方法:
add(option,i):在Select中添加一个option
remove(i):删除一个option。如果没有参数,删除整个select

常用事件:
onchange:当选中项改变时触发

option对象

option对象,代表HTML表单中Select下拉列表中的一个选项
每一对option标签都是一个option对象
创建一个option:
new Option(text,value);

常用属性:
.index:表示当前option在Select下的位置
.text:option中的内容,等同与innerHTML

4.12DOM—实现省市级二级列表

优化代码:

var citys=[
	[{"name":"海淀区","value":1},
	 {"name":"朝阳区","value":2},
	 {"name":"东城区","value":3}],
	[{"name":"A","value":4},
	 {"name":"B","value":5},
	 {"name":"C","value":6},
	 {"name":"D","value":7},
	 {"name":"E","value":8}],
	[{"name":"F","value":9},
	 {"name":"G","value":10},]
		]

//1.构建DOMTree
//2.查找触发事件的元素:两个Select
var selProvs=document.getElementById("selProvs");//省级列表
var selCity=document.getElementById("selCity");//市级列表
//3.绑定事件
selProvs.onchange=function(){
	//判断是否选择
	var v=parseInt(this.value);//省级列表当前选中项的value值(之前那个是获取的index值)
	if(v==0){
		//未选择
		selCity.innerHTML="";
		selCity.className="hide";
	}else{
		//清空selCity内容样式
		selCity.innerHTML="";
		selCity.className="";
		//选择
		//创建文档片段
		var frag=document.createDocumentFragment();
		//创建市级列表第一个option:请选择
		frag.appendChild(new Option("-请选择-"));
		//添加市级列表
		var citys_i=citys[v-1];//获取市级城市子数组
		for(var i=0;i<citys_i.length;i++){
			var option=new Option(citys_i[i]["name"],citys_i[i]["value"]);
			frag.appendChild(option)
		}
		//文档片段添加到selCity
		selCity.appendChild(frag);
	}
}

Form对象

Form对象,代表一个HTML表单元素
每一对form标签都是一个Form对象
获得HTML页面中的所有表单对象:
document.forms
获得某一个表单对象
document.forms[i/id]

获得所有表单元素的集合
form.elements
获得所有表单元素的总个数
form.length
获得表单某一个元素
form.name
//name是这个元素的name名

常用方法
submit():手动控制提交表单

表单元素常用方法
获得焦点:focus()
失去焦点:blur()

表单元素常用事件
获得焦点事件:onfocus
失去焦点事件:onblur

4.14Form表单验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值