JavaScript学习笔记(第七章—DOM(2))

JavaScript学习笔记(第七章—DOM(2))

7.2.5元素样式

对于元素对象的样式,还可以直接通过“style.属性名称”的方式操作。在操作样式名称时,需要去掉CSS样式名中的横线“-”,并将第二个首英文字母大写。

<div id="box"></div>
		<script>
			var box=document.getElementById('box');
			box.style.width='100px';
			box.style.height='100px';
			box.style.backgroundColor='red';
			box.style.transform='rotate(7deg)';		//transform向元素应用2D或3D转换
		</script>

此处代码用于为获取的box元素对象添加样式,效果相当于在CSS中添加样式:

#box{width: 100px;height: 100px;background-color: red; 
		transform: rotate(7deg);}

classList(只读)可以操作元素的类选择器列表,也可以利用元素对象的className属性获取,结果为字符型。

		<style>
			.bg{background: #ccc;}
			.strong{font-size: 24px; color: red;}
			.smooth{height: 30px;width: 120px;border-radius: 10px;}
		</style>
	</head>
	<body>
		<ul>
			<li>PHP</li>
			<li class="bg">JavaScript</li>
			<li>C++</li>
			<li>Java</li>
		</ul>
		<!-- 修改第二个li的类名 -->
		<script>		
			//获取第二个li元素
			var ele=document.getElementsByTagName('li')[1];
			//若第二个li元素没有strong类,则添加.
			if(!ele.classList.contains('strong')){
				ele.classList.add('strong');
			}//若li元素中没有smooth类则添加,有则删除
			ele.classList.toggle('smooth');
			console.log('添加与切换样式后:');
			console.log(ele);
			//删除样式
			ele.classList.remove('bg');
			console.log('删除后');
			console.log(ele);
		</script>

7.3.1节点操作

1、获取节点

HTML文档可以看作是一个节点树,因此可以利用操作节点的方法操作HTML中的元素
节点的查看获取

<ul id="ul">
			<li>JS</li>
			<li>BOM</li>
			<li>DOM</li>
			<!-- 注释 -->
		</ul>
		<script>
			var ul=document.getElementById('ul');
			 console.log(ul.childNodes);		//查看ul下面的所有节点
		</script>

控制台显示的结果中0、2、4、6、8都是文本节点,即<ul>元素中每个标签前后的空白和换行符,1、3、5是元素节点,7是注释节点。

节点追加

获取元素的节点以后,还可以利用DOM提供的方法实现节点的添加,如创建一个li元素节点,为li元素节点创建一个文本节点。

      <script>
			var h2=document.createElement('h2');	//创建h2元素节点
			var text=document.createTextNode('Hello JavaScript');//创建文本节点
			var attr=document.createAttribute('align');		//创建属性节点
			attr.value='center';		//为属性节点赋值
			h2.setAttributeNode(attr);	//为h2元素添加属性节点
			h2.appendChild(text);		//为h2元素添加文本节点
			document.body.appendChild(h2);	//将h2节点追加为body元素的子节点			
		</script>
节点删除

开发中若要删除某个HTML元素节点或属性节点,则可以利用removeChild()和removeAtrtibuteNode()方法实现,返回值是被移除的元素节点或属性节点。

		<ul>
			<li>PHP</li>
			<li>JavaScript</li>
			<li class="strong">UI</li>
		</ul>
		<script>
			var child=document.getElementsByTagName('li')[2];	//获取第三个li元素
			var attr=child.getAttributeNode('class');			//获取元素的class属性值
			console.log(child.removeAttributeNode(attr));		//删除元素的class属性值
			console.log(child.parentNode.removeChild(child));	//删除元素
		</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值