js-dom

12 篇文章 0 订阅

什么是dom

DOM,全称Document Object Model文档对象模型。
JS中通过DOM来对HTML文档进行操作。只要理解了DOM就可以随心所欲的操作WEB页面。

在dom中,所有HTML元素都被定义为对象
属性是我们能够获取或设置的值(改变页面元素的内容)

方法是能够完成的动作(比如添加页面元素)

<html>
<body>
	<div id="box"></div>
	<script>
		document.getElementById("box").innerHTML = "ABC";
	</script>
</body>
</html>

getElementById是方法,而innerHTML是属性

文档

  • 文档表示的就是整个的HTML网页文档

模型

  • 使用模型来表示对象之间的关系,这样方便我们获取对象

节点

节点:Node——构成HTML文档最基本的单元。
常用节点分为四类

  • 文档节点:整个HTML文档
  • 元素节点:HTML文档中的HTML标签
  • 属性节点:元素的属性
  • 文本节点:HTML标签中的文本内容

操作dom元素

查元素

(1)根据id获取页面元素

getElementById
如果id不存在,获取到的是null
id具有唯一性,所以不要使用同名的id

<body>
	<div id="box" class="one" name="123">我是一个盒子</div>
	<div id="box1" class="one" >我是一个盒子</div>
	<input type="button" name="aaa"  value="我是按钮">
</body>
<script>
	var box = document.getElementById("box") //获取到了id名为box的页面元素
	console.log(box);  //打印结果就是   <div id="box" name="123">我是一个盒子</div>
	var box1 = document.getElementById("div") 
	console.log(box1); //在页面中没有id名为div的页面元素,打印出的结果是null
</script>
(2)根据类名获取页面元素

getElementsByClassName

//网页元素同上
<script>
	var one = document.getElementsByClassName("one");
	console.log(one);//获取的是一个伪数组
	one.reverse();//报错  伪数组不能调用数组的方法
</script>
(3)根据标签名获取页面元素

getElementsByTagName

<script>
	var divs = document.getElementsByTagName("div");  // 标签名获取元素 获取得是伪数组
</script>
(4)根据name属性名获取页面元素

document.getElementsByName(“name属性名”)
适用于拥有name属性的表单元素,获取的也是伪数组

<script>
	var divs = document.getElementsByName("aaa");  //  获取得是伪数组
</script>

查属性

1.点语法

点语法操作元素属性注意点:

  1. 只能获取行内属性,不能获取行外属性
  2. 获取到的的带单位的字符串
  3. 属性既可以获取 也可以修改
  4. 获取类名使用className,不能使用class,因为class是关键字

点语法获取元素的特点:

  1. 可以获取标准属性(主要)
  2. 可以获取点语法动态添加的属性
  3. 无法获取行内自定义属性
  4. 无法获取行外属性
<script>
	//获取元素
	var box = document.getElementsById("box");
	
	//给属性对象赋值
	box.style.backgroundColor = "green";
	//注意:背景颜色如果写成background-color,会报错,颜色需要带引号 
	//如果加上里面操作html样式属性   有-,把命名改成驼峰命名法

</script>
attribute

attribute获取元素的特点

  1. 可以获取标准属性
  2. 可以获取行内自定义属性(主要用来操作行内自定义属性)
  3. 无法获取行外属性
  4. 无法获取点语法动态添加的属性
(1)读取属性

使用元素的 getAttribute() 方法可以读取指定属性的值。

<div id="box1">千与千寻</div>
<div id="box2">哈尔的移动城堡</div>
<script>
    var box1 = document.getElementById("box1");  //获取第一个盒子
    console.log(box1.getAttribute("id"));  //显示第一个盒子的id属性值
    var blue = document.getElementById("box2");  //获取第二个盒子
    console.log(box2.getAttribute("id"));  //显示第二个盒子的id属性值
</script>
(2)设置属性

使用元素的 setAttribute() 方法可以设置元素的属性值

<div id="box1">千与千寻</div>
<div id="box2">哈尔的移动城堡</div>
<script>
    var box1 = document.getElementById("box1");  //获取第一个盒子的引用
    var box2= document.getElementById("box2");  //获取第二个盒子的引用
    red.setAttribute("title", "千与千寻");  //为box1对象设置title属性和值
    blue.setAttribute("title", "哈尔的移动城堡");  //为box2对象设置title属性和值
</script>
删除属性

使用元素的 removeAttribute() 方法可以删除指定的属性

<div id="box1" style = "color : pink">千与千寻</div>
<div id="box2">哈尔的移动城堡</div>
<script>
    var box1 = document.getElementById("box1");  //获取第一个盒子的引用
    var box2= document.getElementById("box2");  //获取第二个盒子的引用
    box2.onclick = function(){
			box1.removeAttribute("style","color : pink")   //点击二号盒子会删除一号盒子的字体颜色
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值