功能:

  • 点击城市列表项,如果内容列表不存在,则插入点击项;
  • 如果内容列表中已存在,则不插入,然后把内容列表中的对应项放到第一位。

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>枚举算法实现list列表</title>
<style>
.tag-list a{ text-decoration: none; display: inline-block; margin: 0 10px; }
.con-show{ padding: 20px 10px; background-color: #f0f0f0; margin-top: 20px; }
.con-show p{ margin: 10px; }
</style>
</head>
<body>
<div class="tag-list">
<h3>城市列表:</h3>
<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>
<div class="con-list"></div>
</body>
</html>

JS代码:

var oList = document.querySelector('.tag-list'),
aItems = oList.getElementsByTagName('a'),
oConList = document.querySelector('.con-list'); for(var i = 0; i < aItems.length; i++){
aItems[i].onclick = function() {
var ownText = this.innerHTML;
var oP = document.createElement('p');
// 如果内容列表中已经存在要插入的对象
if(checkRepeat(ownText)) {
console.log('内容已经存在喽...');
// 把内容列表中已存在的内容项前置
toBefore(ownText);
}else {
// 如果不存在,则插入
oP.innerHTML = ownText;
oConList.insertBefore(oP, oConList.querySelectorAll('p')[0]);
}
}
}
// 枚举内容类别中的内容,检测是否和要插入的相同,如果有相同项,返回true
function checkRepeat(text) {
oConItem = oConList.querySelectorAll('p');
for(var i = 0; i < oConItem.length; i++){
if(oConItem[i].innerHTML == text){
return true;
}
}
}
// 如果内容列表中已经存在将要插入的对象,则把内容列表中对应内容前置
function toBefore(text) {
oConItem = oConList.querySelectorAll('p');
for(var i = 0; i < oConItem.length; i++){
if(oConItem[i].innerHTML == text){
oConList.insertBefore(oConItem[i], oConItem[0]);
}
}
}

利用枚举算法实现todoList:把对应项添加的内容列表的更多相关文章

  1. 利用Apriori算法对交通路况的研究

    首先简单描述一下Apriori算法:Apriori算法分为频繁项集的产生和规则的产生. Apriori算法频繁项集的产生: 令ck为候选k-项集的集合,而Fk为频繁k-项集的集合. 1.首先通过单遍扫 ...

  2. 机器学习实战(Machine Learning in Action)学习笔记————08.使用FPgrowth算法来高效发现频繁项集

    机器学习实战(Machine Learning in Action)学习笔记————08.使用FPgrowth算法来高效发现频繁项集 关键字:FPgrowth.频繁项集.条件FP树.非监督学习作者:米 ...

  3. 利用神经网络算法的C#手写数字识别(一)

    利用神经网络算法的C#手写数字识别 转发来自云加社区,用于学习机器学习与神经网络 欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 下载Demo - 2.77 MB (原始地址):handwri ...

  4. 利用CORDIC算法计算三角函数

    这里主要先介绍如何利用CORDIC算法计算固定角度\(\phi\)的\(cos(\phi)\).\(sin(\phi)\)值.参考了这两篇文章[1].[2]. 一般利用MATLAB计算三角函数时,用\ ...

  5. 利用Manacher算法寻找字符串中的最长回文序列(palindrome)

    寻找字符串中的最长回文序列和所有回文序列(正向和反向一样的序列,如aba,abba等)算是挺早以前提出的算法问题了,最近再刷Leetcode算法题的时候遇到了一个(题目),所以就顺便写下. 如果用正反 ...

  6. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  7. 在opencv3中实现机器学习算法之:利用最近邻算法(knn)实现手写数字分类

    手写数字digits分类,这可是深度学习算法的入门练习.而且还有专门的手写数字MINIST库.opencv提供了一张手写数字图片给我们,先来看看 这是一张密密麻麻的手写数字图:图片大小为1000*20 ...

  8. 枚举算法总结 coming~^.*

    感谢CJ同学监督╭(╯^╰)╮.从放假到现在都木有更新博客了~噶呜~小娘谨记教诲,每天会更新博客==!! 看了一下POJ训练计划,虽然已经零零散散做了40多道题了,还是从头开始整理一下漏掉的知识点.T ...

  9. 【机器学习实战】第12章 使用FP-growth算法来高效发现频繁项集

    第12章 使用FP-growth算法来高效发现频繁项集 前言 在 第11章 时我们已经介绍了用 Apriori 算法发现 频繁项集 与 关联规则.本章将继续关注发现 频繁项集 这一任务,并使用 FP- ...

随机推荐

  1. springMVC对jsp页面的数据进行校验

    一. 使用注解校验 a) 引入校验依赖包 <dependency> <groupId>javax.validation</groupId> <artifact ...

  2. LINUX监控一:监控命令

    简单的整理一下常用的linux监控命令 本篇参考了:http://www.cnblogs.com/JemBai/archive/2010/07/30/1788484.html的内容 1.top top ...

  3. [leetcode-738-Monotone Increasing Digits]

    Given a non-negative integer N, find the largest number that is less than or equal to N with monoton ...

  4. VS2012或VS2010 工具栏中无法显示DevExpress控件

    进入命令提示符 跳转到Dev控件安装目录,如[目录D:\Program Files (x86)\DevExpress\DXperience 12.2\Tools]下, 然后执行命令: ToolboxC ...

  5. c++ int 负数 补码 隐式类型转换

    unsigned y = ; ; cout << x + y << endl; 对于上述的结果为 这里面有一个负数的补码问题和不同类型之间的隐式类型转换问题 首先负数的表示方法 ...

  6. Android基础------高级ul:消息对话框

    前言:Android消息对话框提示笔记,刚刚接触Android 1.经典模式 //列表对话框 //经典模式 public void listdialog_01(View view){ final St ...

  7. 一日一句 SQL [持续更新] MySQL + Oracle

    1 . group by 和 having字句: group by是根据列值对数据进行分组, having子句用于对分组的数据进行过滤. [ having 针对的对象是分好的组] eg: employ ...

  8. query 获取本身的HTML

    <div class="test"><p>hello,你好!</p></div> <script> $(".t ...

  9. [洛谷P3332][ZJOI2013]K大数查询

    题目大意:有$n$个位置,$m$个操作.操作有两种: $1\;l\;r\;x:$在区间$[l,r]$每个位置加上一个数$x$ $2\;l\;r\;k:$询问$[l,r]$中第$k$大的数是多少. 题解 ...

  10. Android Apk的反编译与代码混淆

    一.反编译 1.获取工具: 既然是反编译,肯定要用到一些相关的工具,工具可以到这里下载,里面包含三个文件夹,用于反编译,查看反编译之后的代码: 其实这两工具都是google官方出的,也可在google ...