<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>枚举算法:不重复选择</title>
<script>
window.onload = function () {
/*
* 问题描述:
* 从城市列表中选择城市,然后显示出来
* 要求:
* 1.没有选择过的城市,添加到选择栏中去
* 2.选择过的城市,应该放在选择栏最前面
* */
var aA = document.getElementsByTagName('a');
var oUl = document.getElementById('list');
var aLi = oUl.getElementsByTagName('li');
// 遍历城市列表
for (var i = 0; i < aA.length; i++) {
// 为点击选择每个城市添加事件
aA[i].onclick = (function (i) {
return function () {
var selectCity = aA[i].innerHTML;
// 判断选择已选择城市列表中是否有值
var oLi = document.createElement('li');
oLi.innerHTML = selectCity;
var selectedCities = aLi.length;
if (selectedCities === 0) {
// 没有,添加
oUl.appendChild(oLi);
} else {
// 有,遍历已选择城市列表
for (var j = 0; j < selectedCities; j++) {
// 没有,放入尾部;有,放在头部
if (aLi[j].innerHTML === selectCity) {
oUl.removeChild(aLi[j]);
oUl.insertBefore(oLi, aLi[0]);
// 必须结束,不然新添加的会在后来的for循环中处乱
break;
} else {
oUl.appendChild(oLi);
}
/*(function (j) {
return function () {
aLi[j].innerHTML !== selectCity ? oUl.appendChild(oLi)
: oUl.insertBefore(aLi[j], aLi[0]);
}()
})(j);*/
}
}
}
})(i);
}
}
</script>
</head>
<body>
<a href="javascript:;">北京</a>
<a href="javascript:;">上海</a>
<a href="javascript:;">杭州</a>
<a href="javascript:;">广州</a>
<a href="javascript:;">深圳</a>
<a href="javascript:;">成都</a>
<a href="javascript:;">武汉</a>
<ul id="list"></ul>
</body>
</html>
枚举算法:不重复选择
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 《乡约》是央视目前唯一一档相亲交友类大型户外访谈节目,由全国金话筒奖获得者肖东坡主持。20176月12日上午,《乡...