欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

BOM和DOM

程序员文章站 2024-03-20 10:37:42
...

BOM

bom即浏览器对象模型, BOM提供了独立于内容 而与浏览器窗口进行交互的对象。 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window,也就是说,BOM中的绝大多数方法都要先获得window对象。
对于它的话我准备写写方法就好了:
window.prompt(“请输入”) 在浏览器弹出一个输入框,接收到的是输入的文本。
window.open(“http://www.baidu.com”) 打开一个网站
window.close(); IE支持关闭 ,其他浏览器不支持

定时器

var id=window.setTimeout(function(){ },5000); 调用一次性的定时器,返回值是这个定时的id,后面是定的毫秒时间
window.clearTimeout(id); 取消一次性定时器
var timeID=window.setInterval(function(){ },1000); 重复调用的定时器
window.clearInterval(timeID) 取消定时器
var v=location.href; 可以获取或设置地址栏里面的内容,可以用来跳转页面,跳转可以使用下面的指令。window.location.href=“http://www.163.com”;
ele.innerHTML innerHTML可以获取或指定元素标签内的html内容,从·该标签的起始位置到终止位置的全部内容。

在上面方法中,与弹框相关的方法 window对象可以省略不写

DOM

//DOM组成部分:
	   Element 标签对象
		Attribute 属性对象
		Comment 注释对象
		Text 文本对象
		 document 整个的HTML文档对象
		Node:节点对象
		DOM树 父节点子节点所构成了一个DOM树

window.document 通过window中 document的这个属性,可以获取出文档对象
document.body 可以获得body标签对象
获取Element对象
* getElementById():通过id属性值获取唯一的元素
* getElementsByTagName():通过标签名称获取元素对象数组
* getElementsByName():通过name属性值获取元素对象数组
* getElementsByClassName():通过class属性值获取元素对象数组

通过上面4种标签名获取多个元素对象的数组,然后遍历就可以取出每个元素,然后就可以为所欲为了。
其中,
表单标签
针对表单标签,提供了一个方法根据表单标签的name属性值,来获取多个表单元素

<input type=" " id="" value="as" name="username" />
var arr = document.getElementsByName("username");

Element对象的常用属性

var myDiv=document.getElementById("mydiv");

** var a=myDiv.innerHTML** 获取标签之间的子标签和文本
var b=myDiv.innerText 只获取标签之间夹的文本,不拿子标签
给标签对象设置style属性,格式为myDiv.style.color=“red”;
css样式名里面有 “-” 横杠拼接的,注意把 “-” 去掉 然后把"-"横杠后面的第一个字母大写,如myDiv.style.cssText+=“font-family:‘黑体’;background-color:yellow”;

标签对象自带属性的设置

通过对标签对象得自带属性得设置,可对标签得某个属性进行设置

<font size="" color="">龙卷风摧毁停车场·</font>
var fontEle = document.getElementsByTagName("font")[0];

方法一
fontEle.getAttributeNode("size").value="7";
fontEle.getAttributeNode("color").value="red"


方法二(省略写法)
fontEle.size = "7";
fontEle.color = "yellow";

这里要注意的是在得到fontEle时后面必须带上角标,不然得到的是一个数组。即使现在仅有一个font标签。

创建标签对象的方法

	<script type="text/javascript">
		var bd=document.body;
		var mycom=document.createComment("这是一行注释");
		//创建属性对象
		var attri=document.createAttribute("style");
		attri.value="color:red;background:yellow";
		//怎么创建DOM对象
		//创建标签对象
		var myH1=document.createElement("h1");
		//myH1.setAttributeNode(attri); //设置属性对象    两种设置属性的方法
		//给标签设置属性以及属性的值
		myH1.setAttribute("style",'color:red;background:yellow;font-size:100px');
		//创建文本对象
		var myText=document.createTextNode("这是一行文本内容");
		//把文本对象,放到标签之间
		myH1.appendChild(myText);
		//把<h1>标签对象,放到body里面
		bd.appendChild(myH1);
		bd.appendChild(mycom);
		
	</script>

创建标签调用各自的方法,然后设置属性,最后再添加到body中。

删除DOM中的元素

<script type="text/javascript">
		var bd=document.body;
		var myH1=document.createElement("h1");
		var myText=document.createTextNode("一行文本");
		bd.appendChild(myH1);
		myH1.appendChild(myText);
删除有两种方式
bd.removeChild(myH1);        通过父元素删除子元素

myH1.removeChild(myText); 
myH1.remove(); 元素自己删自己

动态创建DOM对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
	</body>
	<script type="text/javascript">
		var mydiv=document.createElement("div");
		mydiv.setAttribute('style','border:1px black solid;height:200px;')
		document.body.appendChild(mydiv);
		var i=-230;
		var timeID=setInterval(function(){
			i++;
			if(i>screen.height-500){
				clearInterval(timeID);	
				setTimeout(function() {
					mydiv.style.display="none";
				}, 2000);
			}else{
			mydiv.style.marginTop=i+"px";
			}
		},1);
	</script>
</html>