利用枚举思想来添加地名,主要功能是:判断点击a标签(即当前的地名)如果在ul的li不存在的话那么就添加,有则不添加,而且还提供了相应的排序功能...

HTML代码:

<div id="china">

<a href="javascript:;">广州</a>

<a href="javascript:;">深圳</a>

<a href="javascript:;">上海</a>

<a href="javascript:;">杭州</a>

<a href="javascript:;">武汉</a>

<a href="javascript:;">天津</a>

</div>

<ul id="ul1"></ul>

 

JAVASCRIPT代码:

//选择元素

var oChinaChild = document.querySelectorAll('#china a');

var oUl1 = document.querySelector('#ul1');

var aLi = oUl1.getElementsByTagName('li');

//遍历 a 标签

for(var i=0;i<oChinaChild.length;i++){

//定义a标签的点击事件

oChinaChild[i].addEventListener('click',fn1,false);

}

function fn1(){

//这里做判断是否用来添加li元素

//这里的this.innerHTML代表的是当前a标签的内容,主要靠第一个枚举的方法来判断是否要执行第一段代码

if (mj1(this.innerHTML)) {

var oLi = document.createElement('li');

oLi.innerHTML = this.innerHTML;

//如果没有li标签那么就往后添

if(!aLi[0]){

oUl1.appendChild(oLi);

}else{

//否则就往前插

oUl1.insertBefore(oLi,aLi[0]);

}

}else{

//进行第二个枚举函数

mj2(this.innerHTML);

}

}

//枚举函数1 : 利用这个函数来判断是否要添加地名

function mj1(text){

//先定义一个为 result 的变量

var result = true;

//遍历ul所有的li元素

for( var i=0; i<aLi.length ; i++){

//如果ul 所以 li 中 有当前元素这个内容那么就返回false

if (aLi[i].innerHTML == text ) {

result = false;

}

}

//返回 result

return result;

}

//枚举函数2 : 作用是如果点击当前的地名,已经存在的话,那么执行的是插到最前面

function mj2(text){

//遍历ul所有li元素

for(var i=0;i<aLi.length;i++){

//判断如果当前值存在li中那么就执行下面代码

if (aLi[i].innerHTML == text) {

//插到最前面

oUl1.insertBefore(aLi[i],aLi[0]);

}

}

}

转载于:https://www.cnblogs.com/zion0707/p/3889389.html

javascript 利用 - 枚举思想 - 添加地名的一个小例子相关推荐

  1. 利用JML开发的一个小例子,附详细注释

    利用JML开发的一个小例子,附详细注释.有问题的地方希望大家能帮我提出来,呵呵 /**/ /*  * msntest.java  *  * Created on 2007年4月11日, 下午1:40 ...

  2. C# 实现 rtc_通过Xlua实现unity热更新的一个小例子

    通过Xlua实现unity热更新的一个小例子 一.介绍 ​ 热更新是指在更新游戏资源或者逻辑的时候不需要开发者将游戏再打包.发布.玩家重新下载安装包,而是可以通过将需要更新的资源打包成AssetBun ...

  3. unity案例 mysql lua_通过Xlua实现unity热更新的一个小例子

    通过Xlua实现unity热更新的一个小例子 一.介绍 ​ 热更新是指在更新游戏资源或者逻辑的时候不需要开发者将游戏再打包.发布.玩家重新下载安装包,而是可以通过将需要更新的资源打包成AssetBun ...

  4. 生成句法分析树以及从一个小例子来看词义消歧及语义角色标注

    一.生成句法分析树 把一句话按照句法逻辑组织成一棵树,由人来做这件事是可行的,但是由机器来实现是不可思议的,然而算法世界就是这么神奇,把一个十分复杂的过程抽象成仅仅几步操作,甚至不足10行代码,就能让 ...

  5. 从一个小例子看贝叶斯公式的应用(学习简单、基础、入门的例子)

    #从一个小例子看贝叶斯公式的应用 ###应用Bayesian公式考察如下的实例并回答问题. 张某为了解自己患上了X疾病的可能性,去医院作常规血液检查.其结果居然为阳性,他赶忙到网上查询.根据网上的资料 ...

  6. MVVM模式的一个小例子

    使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...

  7. 飞鸽传书举一个小例子

    飞鸽传书举一个小例子,每个程序窗口右上角都有三个按钮,如最小化.关闭等.乔布斯觉得不好看,不易用,他提出改用红绿蓝的交通灯.这样修改后,果然 Mac OS 漂亮和易用了很多. 目前互联网和手机上的应用 ...

  8. puppet运行慢的一个小例子

    一个小例子来看下怎么debug puppet运行慢的问题. 一个小例子来看下怎么debug puppet运行慢的问题. 发现一台机器的agent运行比较缓慢,首先看下puppet server的整体性 ...

  9. html5 websocket插件,html5实现的WebSocket一个小例子(附代码)

    本篇文章给大家带来的内容是关于html5实现的WebSocket一个小例子(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 客户端代码: var socket; if (&q ...

最新文章

  1. Angular给HTML节点绑定自定义属性和变量,用于设置一些动态的状态变化非常有用!
  2. 数据库的字段是date java里面能用timestamp吗_数据库中DATETIME,DATE和TIMESTAMP类型 的区别...
  3. 【项目实战课】基于Pytorch的SRGAN图像超分辨实战
  4. 记一次 Vue2 迁移 Vue3 的实践总结
  5. ftp文档服务器设置,ftp服务器基本设置
  6. 技术大神有话说,别让新业绩为旧设备背锅
  7. class类初始化之后调用赋值问题记录
  8. 35.MySQL 常见问题
  9. 网易云通信 java 登录,网易云IM(即时通讯) 集成指南(Android)
  10. DDR4 vs LPDDR4 vs LPDDR4x:有什么区别?
  11. Windows 10 21H2 版本微软拼音全拼和双拼的快速切换
  12. ie浏览器样式兼容写法_浏览器兼容性以及写法
  13. java替换图片_Java 替换 PPT 中的图片
  14. java 微信高级群发_java微信平台,高级群发接口开发
  15. html语言hr标记,HTML水平线段HR标记详解
  16. 图学习(二)K-armed Bandit based Multi-modal Network Architecture Search for Visual Question Answering
  17. 个人网站个人主页的建立
  18. 7代服务器cpu型号,七代酷睿都有哪些型号?_笔记本新闻-中关村在线
  19. 高中数学立体几何高考真题解题技巧(名师总结)
  20. 蛋白质结构预测方案总结

热门文章

  1. oracle包函数过程,oracle 函数,包,存储过程简单实例
  2. 计算机科学技术作文600,生活因科技而精彩作文600字
  3. 径向基函数神经网络_基于RBF神经网络的网络安全态势感知预测研究
  4. hive sqoop 分区导入_Sqoop概述及shell操作
  5. wps解析json数据_通过WordPress HTTP API 获取json内容并解析
  6. rpm怎样在win安装mysql_centos7.6安装mysql的正确步骤
  7. php png jpg,php如何将png转换成jpg-PHP问题
  8. oracle java rmi 漏洞,Oracle Java SE Java运行时环境RMI子组件远程漏洞(CVE-2011-3556)
  9. ftl模板导出excel_freemarker导出复杂Excel
  10. 计算机与plc链接通信协议,实现上位计算机与PLC的上位链接系统的通信设计