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

这篇博客主要介绍了JavaScript在实际应用中的各种技巧,包括列表菜单的交互、快捷设置文本字体的方法、表格的操作(创建、删除、设置颜色和排序)、选择框的应用(类似邮件管理)、正则表达式在用户注册中的应用,以及下拉框的功能实现(设置字体颜色和两个下拉框的对应)。内容详实,适合提升JavaScript实战技能。
摘要由CSDN通过智能技术生成


一、列表菜单

1、实现功能:点击菜单,显示菜单下的内容,再次点击,隐藏内容

注:把height+overflow样式同时设在<d1>能够解决菜单块显示重叠问题

<span style="font-size:14px;"><!DOCTYPE html>
<html>
    <head>
    	<title>演示列表菜单</title>
		<style type="text/css">
			dd{
				margin:0px;
			}
			dl{
				height:16px;
				overflow:hidden;
			}
			
			.open{
				height:90px;
				overflow:visible;
			}
			.close{
				height:16px;
				overflow:hidden;
			}
			
		</style>
		
        <script type="text/javascript">
        	var flag = true;
			function list(x){
				//alert("aa");
				var oDlNode = document.getElementsByTagName("dl")[x];
				if(flag){
				   oDlNode.style.overflow="visible";//这种单独设置overflow样式,会出现菜单块重叠的问题
				   flag=false;
				}else{
					oDlNode.style.overflow="hidden";
					flag=true;
				}
			}
        
        </script>
    </head>
    <body>
    	<dl>
    		<dt οnclick="list(0)">菜单条1</dt>
			<dd>菜单项1</dd>
			<dd>菜单项2</dd>
			<dd>菜单项3</dd>
			<dd>菜单项4</dd>
    	</dl>
		<dl>
    		<dt οnclick="list(1)">菜单条2</dt>
			<dd>菜单项1</dd>
			<dd>菜单项2</dd>
			<dd>菜单项3</dd>
			<dd>菜单项4</dd>
    	</dl>
		<dl>
    		<dt οnclick="list(2)">菜单条3</dt>
			<dd>菜单项1</dd>
			<dd>菜单项2</dd>
			<dd>菜单项3</dd>
			<dd>菜单项4</dd>
    	</dl>
		
		
		
		<!-- -------------------------   -->
		<script type="text/javascript">
        	function list2( oDtNode ){
				//alert(oDlNode.className);
				//alert(oDlNode.nodeName);
				var oDlNode = oDtNode.parentNode;
				if(oDlNode.className=="open"){
				   oDlNode.className = "close";//而这种high+overflow的方式可以解决菜单块重叠的问题
				}else{
					oDlNode.className = "open";
				}
			}
        
        </script>
		<hr/>
		
		<dl>
    		<dt οnclick="list2(this)">菜单条1</dt>
			<dd>菜单项1</dd>
			<dd>菜单项2</dd>
			<dd>菜单项3</dd>
			<dd>菜单项4</dd>
    	</dl>
		<dl>
    		<dt οnclick="list2(this)">菜单条2</dt>
			<dd>菜单项1</dd>
			<dd>菜单项2</dd>
			<dd>菜单项3</dd>
			<dd>菜单项4</dd>
    	</dl>
		<dl>
    		<dt οnclick="list2(this)">菜单条3</dt>
			<dd>菜单项1</dd>
			<dd>菜单项2</dd>
			<dd>菜单项3</dd>
			<dd>菜单项4</dd>
    	</dl>
		
    </body>
</html>
</span>
结果:

2、实现功能:在1的基础上,通过表格封装菜单,且同时只能打开一个菜单块

<span style="font-size:14px;"><!DOCTYPE html>
<html>
    <head>
        <title>演示列表菜单</title>
        <style type="text/css">
			ul{
			    list-style:none;
				margin:0px;
				padding:0px;
				display:none;
			}
			table{
				border:#8080ff solid 1px;
				width:80px;
			}
			table td a:link, table td a:visited{
				text-decoration:none;
				color:#8080FF;
			}
			.open{
				display:block;
			}
			.close{
				display:none;
			}
        </style>
        <script type="text/javascript">
        	function list( node ){
				var oTdNode = node.parentNode;
				var oUlNode = oTdNode.getElementsByTagName("ul")[0];
				
				//获取表格对象
				var oTabelNode = document.getElementById("tableFriends");
				var colUlNodes = oTabelNode.getElementsByTagName("ul");
				for(var x=0; x<colUlNodes.length; x++){
					/*
					if(colUlNodes[x]==oUlNode){
						if(oUlNode.className=="open"){
							oUlNode.className="close";
						}else{
							oUlNode.className="open";
						}
					}else{
						colUlNodes[x].className="close";
					}
					*/
					if(colUlNodes[x]==oUlNode && oUlNode.className!="open" ){
						oUlNode.className="open";
					}else{
						colUlNodes[x].className="close";
					}
				}
				
			}
        
        </script>
    </head>
    <body>
       <table id="tableFriends">
          <tr>
        	 <td>
        	 	<a href="javascript:void(0)" οnclick="list(this)">好友菜单</a>
        		<ul>
        	       <li>一个好友1</li>
			       <li>一个好友2</li>
			       <li>一个好友3</li>
			       <li>一个好友4</li>
                </ul>
        	</td>
          </tr>
          <tr>
        	 <td>
        	 	<a href="javascript:void(0)" οnclick="list(this)">同事菜单</a>
        		<ul>
        	       <li>一个同事1</li>
			       <li>一个同事2</li>
			       <li>一个同事3</li>
			       <li>一个同事4</li>
                </ul>
        	</td>
          </tr>
          <tr>
        	 <td>
        	 	<a href="javascript:void(0)" οnclick="list(this)">黑友菜单</a>
        		<ul>
        	       <li>一个黑友1</li>
			       <li>一个黑友2</li>
			       <li>一个黑友3</li>
			       <li>一个黑友4</li>
                </ul>
        	</td>
          </tr>
          <tr>
        	 <td>
        	 	<a href="javascript:void(0)" οnclick="list(this)">黑友菜单</a>
        		<ul>
        	       <li>一个黑友1</li>
			       <li>一个黑友2</li>
			       <li>一个黑友3</li>
			       <li>一个黑友4</li>
                </ul>
        	</td>
          </tr>
	   </table>
    </body>
</html>
</span>
现象:

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

<span style="font-size:14px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <title>演示列表菜单</title>
		<style type="text/css">
			#newsid ul{
				list-style:none;
			}
			#newslist li{
				float:left;
				width:180px;
			}
			#newslist li ul{
				margin:0px;
				padding:0px;
				display:none;
			}
			#newslist li ul li{
				line-height:25px;
			}
			#newslist li a{
				display:block;
				text-decoration:none;
				color:#ffffff;
				background-color:#0000ff;
				line-height:25px;
				text-align:center;
			}
			#newslist li a:hover{
				color:#06c;
				background-color:#cccccc;
			}
		</style>
		<script type="text/javascript">
			function list(node){
				//var pNode=node;
				var ulNode=node.getElementsByTagName("ul")[0];
				with(ulNode.style){
					display=(display=="block")?"none":"block";
				}
			}
		</script>
    </head>
    <body>
        <div id="newsid">
            <ul id="newslist">
                <li οnmοuseοver="list(this)";  οnmοuseοut="list(this)">
                    <a href="javascript:void(0)">csdn新闻</a>
                    <ul>
                        <li>
                            <a href="http://www.baidu.com">csdn新闻内容摘要</a>
                        </li>
                        <li>
                            <a href="http://www.baidu.com">csdn新闻内容摘要</a>
                        </li>
                        <li>
                            <a href="http://www.baidu.com">csdn新闻内容摘要</a>
                        </li>
                        <li>
                            <a href="http://www.baidu.com">csdn新闻内容摘要</a>
                        </li>
                        <li>
                            <a href="http://www.baidu.com">csdn新闻内容摘要</a>
                        </
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值