JavaScript之------综合应用

本文详细介绍了DHTML技术在JavaScript中的应用,包括列表菜单、快捷设置文本字体、表格操作、选择框功能、下拉框交互及正则表达式在用户注册中的运用。内容涵盖事件处理、DOM操作和CSS样式设置,提供了丰富的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DHTML技术使用的基本思路:
1. 用标签封装数据---html范畴
2. 定义样式---css范畴
3. 明确事件源、事件和要处理的节点---dom范畴
4. 明确具体的操作方式,其实就是事件的处理内容(过程)---js范畴


一、列表菜单

1、实现功能:点击菜单,显示菜单下的内容,再次点击,隐藏内容(允许和不允许同时打开多个菜单项)

<html>
  <head>
    <title>DHTML技术演示---菜单列表1</title>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	 <style type="text/css">
		/*老版本的IE支持,新版本不支持了
		dl{
			height:18px;
			overflow:hidden;
		}*/
		
		/*
		ul{
			//display:none;//不显示
			display:block;//块显示
		}
		*/
		table {
			/*border:#ff80ff;*/
			width:80px;
		}
		
		table ul{
			list-style:none;
			margin:0px;
			padding:0px;
			background-color:#ff8000;
			display:none;
		}
		table td{
			/*border:#0000ff 1px solid;*/
			background:#80ff00;
		}
		
		table td a:link, table td a:visited{
			color:#8080c0;
			text-decoration:none;
		}
		table td a:hover{
			color:#0000ff;;
		}
		
		.open{
			display:block;
		}
		.close{
			display:none;
		}
		
	 </style>
	 
	 <script type="text/javascript">
	 	/*当前菜单的开关切换,当点开其他菜单时,此菜单不会关闭
	 	function list(node){
			var oTdNode = node.parentNode;
			//alert( oTdNode.nodeName);//TD
			var oUlNode = oTdNode.getElementsByTagName("ul")[0];
			//alert( oUlNode.nodeName);//UL
			if( oUlNode.className =="open"){
				oUlNode.className ="close";
			}else{
				oUlNode.className ="open";
			}
		}
		*/
		//实现当前菜单开关切换的同时,把其它菜单全部关闭,即只能打开一个菜单
	 	function list(node){
			var oTdNode = node.parentNode;
			var oUlNode = oTdNode.getElementsByTagName("ul")[0];
			//获取菜单表格(tableMenu)对象 下的所有 菜单块(Ul)对象
			var oTableNode = document.getElementById("tableMenu");
			var arrUlNodes = oTableNode.getElementsByTagName("ul");
			//遍历所有菜单块(Ul)对象,分别对它进行开关显示设置			
			for(var x=0; x<arrUlNodes.length; x++){
				if(arrUlNodes[x]==oUlNode && oUlNode.className!="open"){
					oUlNode.className ="open";//等价于:arrUlNodes[x].className ="open";
				}else{
					arrUlNodes[x].className="close";
				}
			}
		}
	 
	 </script>
  </head>
  
  <body>
	<table id="tableMenu">
		<tr>
			<td>
				<a href="javascript:void(0)" onclick="list(this)">文件菜单</a>
				<ul>
					<li>菜单项一</li>
					<li>菜单项二</li>
					<li>菜单项三</li>
					<li>菜单项四</li>
				</ul>
		    </td>
		</tr>
		<tr>
			<td>
				<a href="javascript:void(0)" onclick="list(this)">编辑菜单</a>
				<ul>
					<li>菜单项一</li>
					<li>菜单项二</li>
					<li>菜单项三</li>
					<li>菜单项四</li>
				</ul>
		    </td>
		</tr>
		<tr>
			<td>
				<a href="javascript:void(0)" onclick="list(this)">调试菜单</a>
				<ul>
					<li>菜单项一</li>
					<li>菜单项二</li>
					<li>菜单项三</li>
					<li>菜单项四</li>
				</ul>
		    </td>
		</tr>
	</table>
	
  </body>
  
</html>

2、实现功能:鼠标放在菜单条上时,显示菜单块,离开菜单条和菜单块时,隐藏菜单块,且鼠标放的行有颜色变化

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>列表菜单</title>
<style type="text/css">
	#newsid ul{
		list-style:none;
	}
	#newslist li{
		float:left;
		width:180px;
	}
	#newslist li ul{
		margin:0px;
		padding:0px;
	}
	#newslist li ul li{
		line-height:25px;
	}
	#newslist li a{
		display:block;
		color:#ffffff;
		background-color:#0066cc;
		text-decoration:none;
		line-height:25px;
		text-align:center;
	}
	#newslist li a:hover{
		color:#0066cc;
		background-color:#999999;
	}
	#newslist li ul a{
		color:#000000;
		background-color:#0099ff;
	}
	#newslist li ul li a:hover{
		color:#0066ff;
		background-color:#999999;
	}
	#newslist li ul{
		display:none;
	}
</style>
<script type="text/javascript">
	function list(liNode){
		var ulNode = liNode.getElementsByTagName("ul")[0];
		with(ulNode.style){
			display = display=="block"?"none":"block";
		}
	}
</script>
</head>
<body background="bg-img.jpg">
<!--  制作一个下拉菜单:1)封装数据 2)定义基本样式    -->
<div id="newsid">
	<ul id="newslist">
		<li onmouseover="list(this)"; onmouseout="list(this)" >
			<a href="javascript:void(0)">城院新闻</a>
			<ul style="display:none;">
				<li><a href="http://www.hncu.net/">校园新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">校园新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">校园新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">校园新闻内容摘要</a></li>
			</ul>
		</li>
		<li onmouseover="list(this)"; onmouseout="list(this)" >
			<a href="javascript:void(0)">大学新闻</a>
			<ul style="display:none;">
				<li><a href="http://www.hncu.net/">大学新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">大学新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">大学新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">大学新闻内容摘要</a></li>
			</ul>
		</li>
		<li onmouseover="list(this)"; onmouseout="list(this)" >
			<a href="javascript:void(0)">社会新闻</a>
			<ul style="display:none;">
				<li><a href="http://www.hncu.net/">社会新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">社会新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">社会新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">社会新闻内容摘要</a></li>
			</ul>
		</li>
		<li onmouseover="list(this)"; onmouseout="list(this)" >
			<a href="javascript:void(0)">就业新闻</a>
			<ul style="display:none;">
				<li><a href="http://www.hncu.net/">就业新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">就业新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">就业新闻内容摘要</a></li>
				<li><a href="http://www.hncu.net/">就业新闻内容摘要</a></li>
			</ul>
		</li>
		
	</ul>
	
</div>

</body>
</html>


二、快捷设置文本字体

实现功能:将文字设置为超链接,用来设置文本的字体

1、通过获取文本的节点,单独设置样式中的字体和颜色

2、通过获取文本的节点,设置此节点的className,与导进的css样式中的通过className方式设置的样式对应起来,从而实现对文本的字体设置

3、写超链接时href=""若为空,默认调本地文件地址,即弹出文件夹,若写成:href=“javascript:void(0)”则不会开新窗口,停在原处,若有其他操作也不会干扰他们进行;还有一种href=“#”不建议使用,会在地址后加上"#"号

<html>
  <head>
    <title>DHTML技术演示---新闻字体3--换套装</title>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	 <link rel="stylesheet" type="text/css" href="1.css" id="linkChgSuit">
	 <style type="text/css">
	 	span:hover{
	 		background-color:#ff0000;
			cursor:hand;
	 	}
	 </style>
	 
	 <script type="text/javascript">
	 	//更改类样式
		function changeFont(sClass){
			var oNewsDiv = document.getElementById("newsDiv") ;
			//利用js+dom的方式来更改节点的样式---class属性
			oNewsDiv.className = sClass;
		}
		
		//换套装
		function changeSuit(sNum
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值