JS基础知识2

JS基础知识2:
BOM,DOM,事件

BOM:(Brower object model)

Window:(如果不指定特定window对象,那么就是当前window对象)
	无需创建,可以使用window,也可以省略
	方法:
		1.alter("xxxx")         //提示弹窗,阻塞,只能确定,返回值undefined
		2.confirn("xxxx")		//提示弹窗,确定:返回true,取消:false
		3.window.close()		//关闭调用者窗口对象的窗口
		4.window.open("url")	//打开窗口,返回出窗口对象
		5.setTimeout(function 对象,millisec)   
			//millisec毫秒后,执行一次,返回id,用于clearTimeout()
		6.setInterval(function 对象,millisec) //间隔millisec毫秒,重复执行
			//millisec毫秒后,重复执行,返回id,用于clearIntercal()
		7.clearTimeout("id")	//取消指定setTimemout()
		7.clearInterval("id")	//取消指定setInterval()
	属性:
		1.history				//访问过的 URL
		2.location				//当前URL的信息
		3.Navigator				//浏览器的信息
		4.Screen				//客户端显示屏幕的信息
		5.document				//window.document.write()

location:
	无需创建,使用location
	方法:
		location.reload()      使用location对象,刷新页面
	属性:
		href:   url			   设置url,跳转页面
	举例:
		var refresh = document.getElementById("refresh");
		refresh.onclick = function(){
			location.reload();
		}


history:
	无需创建,使用history
	方法:
		go()				go(+n) : forward几个;go(-n) : back几个
		back()				可加载当前窗口的历史列表中的前一个URL(如果存在)
		forward()			可加载当前窗口的历史列表中的下一个URL(如果存在)
	属性:
		length				返回浏览器历史列表中的 URL 数量

DOM:(document object model)

通过document获取element后,
element对象可以是有通用的方法
再加上本身标签 HTML的属性设置
再加上元素的event属性设置,结合function对象,实现事件监听机制



核心DOM:
	结点对象:Node (父节点.xxx)
	元素对象:Element
	文档对象:Document 
	属性对象:Attribute
	文本对象:Text
	注释对象:Comment

0.结点对象:Node (父节点.xxx)

方法:
	createElement("html标签")
	appendChild(element)	为父节点添加element子元素	
	replaceChild(element)	为父节点用新节点替换子元素	
属性:
	parentNode: 返回节点的父节点
举例:
						html
	<br>
	<a href="javasrcipt:void(0);" id = "del" value = "删除 "> 删除yes </a>
	<br>
	<a href="javasrcipt:void(0);" id = "add" value = "添加 "> 添加yes </a>
	

						js
	var del = document.getElementById("del");
	del.onclick = function() {
		var big = document.getElementById("id1");
		var small = document.getElementById("id2");
		big.removeChild(small);
	}

	var add = document.getElementById("add");
	add.onclick = function() {
		var big = document.getElementById("id1");
		var small = document.createElement("div");
		small.setAttribute("id","id2");
		big.appendChild(small);
	}

1.文档对象:Document

无需创建,使用document
方法:
	getElementById();返回拥有指定 id 的第一个对象的引用
	getElementsByTagName();  返回指定标签的元素对象们
	getElementsByClassName();返回指定类名的元素对象们
	getElementsByName();	返回指定Name的元素对象们
	createAttribute(name);
	createComment(data);
	createElement(name);
	createTextNode(data);

2.元素对象:Element

通过document 获取和创建
方法:
	removeAttribute();   //删除属性
	setAttribute();		 //设置属性

	element.setAttribute(attributename,attributevalue)
	element.removeAttribute(attributename)
应用:
	1.通过使用innerHTML设置和获取标签体
	2.使用html元素对象的属性
	3.使用元素的style的属性设置,
	或是元素改其className,id等可以使用提前在css中设置好的信息
	都可以控制元素样式

		table = document.getElementById("table");
		table.style.border = "5px solid blue";

举例:

1.例子1

				html
<img alt="null" src="../pictures/off.jpg" id = "light">
<title id = "title">hello anyBody</title>

				js
var light = document.getElementById("light");
var title = document.getElementById("title");

light.onmouseover = function(){
	
	light.src = "../pictures/on.jpg"
	title.text = "on"; 
}

light.onmouseout = function(){
	title.innerHTML = "off"; 
	light.src = "../pictures/off.jpg"
}

2.例子2

//<a> 的 href : "javasrcipt:void(0);"  才能停留在当前页面	
	
			html
<div id = "id1">
big<div id = "id2">small</div>
</div>
<br>
<a href="javasrcipt:void(0);" id = "del" value = "删除 "> 删除yes </a>
<br>
<a href="javasrcipt:void(0);" id = "add" value = "添加 "> 添加yes </a>

			js
var del = document.getElementById("del");
del.onclick = function() {
	var big = document.getElementById("id1");
	var small = document.getElementById("id2");
	big.removeChild(small);
}


var add = document.getElementById("add");
add.onclick = function() {
	var big = document.getElementById("id1");
	var small = document.createElement("div");
	small.setAttribute("id","id2");
	big.appendChild(small);
}

3.例子3

			--css--
table{
	border : 1px solid blue;
}
tr{
	border: 1px solid blue;
	text-align :center;	
}

td,th{
	width : 100px;
}
		   --html--

<table id = "table" align = "center">
<tr>
	<th> 编号</th>
	<th> 姓名</th>
	<th> 年份</th>
</tr>
</table>
			
			--js--
//添加Element_tr
var tr = document.createElement("tr");

//添加Element_td和TextNode_text,td添加text子节点
var td1 = document.createElement("td");
var text = document.createTextNode("9527");
td1.appendChild(text);

var td2 = document.createElement("td");
var text2 = document.createTextNode("李佳");
td2.appendChild(text2);

var td3 = document.createElement("td");
var text3 = document.createTextNode("3years");
td3.appendChild(text3);

//tr添加td子节点
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);

//table添加tr子节点
table = document.getElementById("table");
table.append(tr);			

4.例子4

			--css--
table{
	border : 1px solid blue;
}
tr{
	border: 1px solid blue;
	text-align :center;	
}

td,th{
	width : 100px;
}
		   --html--

<table id = "table" align = "center">
<tr>
	<th> 编号</th>
	<th> 姓名</th>
	<th> 年份</th>
</tr>
</table>	
		--js--
table = document.getElementById("table");
table.innerHTML += "<tr><td>9527</td><td>吴昊</td><td>6years</td> </tr>"

事件:

(基于元素):onclick单击,ondblclick双击,onblur失去焦点,
 onmousedown(可接受event形参)鼠标按下,
 onload加载完成(让window来做,不使js出现空指针异常)
 onkeydown(可接受event形参)键盘按下,
 onchange域的内容被改变(select标签)
 onsubmit提交(表单form)

举例://仅对body中的元素监听,而不是全部的空白区域。

例子1:onmousedown()

<body id = "body">
		...
</body>


var body = document.getElementById("body");
body.onmousedown = function(event){
	var btnNum = event.button;
	if (btnNum==2) {
	  alert("您点击了鼠标右键!")
	  }
	else if(btnNum==0) {
	  alert("您点击了鼠标左键!")
	  }
	else if(btnNum==1) {
	  alert("您点击了鼠标中键!");
	  }
	else{
	  alert("您点击了" + btnNum+ "号键,我不能确定它的名称。");
	  }
}

例子2:鼠标移动,获取光标,并显示

<div id = "xy"></div>
<img src="D:\壁纸\new壁纸\165424.jpg" alt ="jpg" id = "jpg">

window.onload = function(){
	var xy = document.getElementById("xy");
	var text = document.createTextNode("");
	xy.append(text);
	var jpg = document.getElementById("jpg");
	
	jpg.onmousemove = function (event){
	x=event.clientX;
	y=event.clientY;
	text.data = "X 坐标: " + x + ", Y 坐标: " + y;
	}
}

例子3:onsubmit,阻止提交

		--html--
<form action="#" method="get" id = "form">
<label for = "username">用户名: </label><input name = "username" id = "username" placeholder="用户名"><br>
<input  type = "submit" value = "提交表单">
</form>
		
		--js--
window.onload = function(){
	var form = document.getElementById("form");
	form.onsubmit = function() {
		return false;
	}
}

参考资料:

	https://www.w3school.com.cn/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值