【html5】04-操作DOM元素

目录

1 获取单个元素

 2 获取多个元素

 3 类名操作

 4 自定义属性

   1. 获取自定义属性

    2. 设置自定义属性


引言

通过DOM API,开发者可以直接访问、修改和删除页面上的任何元素,包括HTML、CSS和文本内容。这使得开发者能够动态地改变页面的外观和行为。

1 获取单个元素

js

document.querySelector("选择器");

    备注:

  •          选择器: 可以是css中的任意一种选择器
  •          通过该选择器只能选中第一个元素

html

	<ul>
		<li>
			<p>
				<span>1</span>
			</p>
		</li>
		<li>
			<span>2</span>
		</li>
	</ul>

css

<style type="text/css">
		li span {
			color: red;
		}
	</style>

js  选择器:内容为1 2 的标签都符合 ,但只能选中第一个元素,所以只有第一个变成了red

<script type="text/javascript">

	document.querySelector("li span").style.color = "red";
</script>

 2 获取多个元素

  ☞ document.querySelectorAll("选择器");

      备注:

     与document.querySelector区别: querySelectorAll 可以选中所有符合选择器规则的元素,返回的是一个列表。querySelector返回的只是单独的一个元素

例:获取页面多个元素,并在控制台中打印出来

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
	  <ul>
	  	  <li>测试1</li>
	  	  <li>测试2</li>
	  	  <li>测试3</li>
	  	  <li>测试4</li>
	  	  <li>测试5</li>
	  	  <li>测试6</li>
	  	  <li>测试7</li>
	  	  <li>测试8</li>
	  	  <li>测试9</li>
	  	  <li>测试10</li>
	  </ul>

	  <script type="text/javascript">
	  	   var obj=document.querySelectorAll("li");

	  	   for(var i=0; i<obj.length; i++) {
	  	   	   console.log(obj[i].innerText);
	  	   }
	  </script>
</body>
</html>

 3 类名操作

html5 提供了下面四个方法:

  ☞ Dom.classList.add("类名"): 给当前dom元素添加类样式

  ☞ Dom.classList.remove("类名"); 给当前dom元素移除类样式

  ☞ classList.contains("类名"); 检测是否包含类样式

  ☞ classList.toggle("active");  切换类样式(有就删除,没有就添加)

例:为一个空div设置背景,测试添加删除切换包含,

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">

		 .bg {
		 	 height: 50px;
		 	 background-color: orange;
		 }
	</style>
</head>
<body>
	   <div></div>
	   <input type="button" name="" value="添加类名" class="add">
	   <input type="button" name="" value="移除类名" class="remove">
	   <input type="button" name="" value="切换类名" class="toggle">
	   <input type="button" name="" value="是否包含类名" class="contains">


	   <script type="text/javascript">

	   	   //获取页面中元素
	   	   var  div_obj=document.querySelector("div");

	   	   var  add_btn=document.querySelector(".add");

	   	   var  remove_btn=document.querySelector(".remove");

	   	   var  toolge_btn=document.querySelector(".toggle");

	   	   var  contains_btn=document.querySelector(".contains");


	   	   //添加类名
	   	   add_btn.onclick=function() {
	   	   		div_obj.classList.add("bg");
	   	   }

	   	   //移除类名
	   	   remove_btn.onclick=function () {
	   	   	    div_obj.classList.remove("bg");
	   	   }

	   	   //切换类名
	   	   toolge_btn.onclick=function() {
	   	   		div_obj.classList.toggle("bg");
	   	   }

	   	   //是否包含类名
	   	   contains_btn.onclick=function() {
	   	   	  console.log(div_obj.classList.contains('bg'));
	   	   }


	   </script>

</body>
</html>

添加类名

删除类名

切换:类名(样式)有就删除,没有就添加

包含类名,就会在控制台输出true,反之false

 4 自定义属性

☞ 自定义属性                      (小案例分析体验自定义属性)

  data-自定义属性名

        备注:在标签中,以data-自定义名称 

   1. 获取自定义属性

   Dom.dataset   返回的是一个对象

           Dom.dataset.属性名  或者  Dom.dataset[属性名]

          注意: 属性名是不包含data-

例:

<body>

	<div class="one" data-test-name="123"></div>
	<div class="two" data-test="567"></div>
	<script type="text/javascript">

		//获取标签的自定义属性值
		var list = document.querySelector(".one").dataset;
		console.log(list);
		console.log("list获取属性值" + list.testName);
		var list1 = document.querySelector(".two").dataset;
		console.log(list1);
		console.log("list1获取属性值" + list1.test);
	</script>
</body>

当有多个属性名包含 - 时  ,会转换成驼峰命名 

    2. 设置自定义属性

           Dom.dataset.自定义属性名=值  或者  Dom.dataset[自定义属性名]=值

例:在上面的例子加上下面代码

//设置自定义属性

        list.age = 20;

        list.testHeight = 180;

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mikuc

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

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

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

打赏作者

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

抵扣说明:

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

余额充值