这是〈持环开行打进对端架处参触架码我通会法时果锋利的JQ〉里的第二章实例,首先,看效果:直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如如图:

默认状态:隐遇新是直朋能到藏

单击按钮显示遇新是直朋能到分览更多。

很简单的效果遇新是直朋能到分览支体调,先看结构:

*{ margin:0; padding:0;}

body{ font-size:12px; text-align:center;}

a{ color:#04d; text-decoration:none;}

a:hover{ color:#f50; text-decoration:underline;}

.SubCategoryBox{ width:600px; margin:0 auto; text-align:center; margin-top:40px;}

.SubCategoryBox ul{list-style:none;}

.SubCategoryBox ul li{ float:left; width:200px; line-height:20px;}

.showmore{ clear:both; text-align:center; padding-top:10px; zoom:1;}

.showmore a{ display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid #aaa;}

.showmore a span{ padding-left:15px; background:url(images/down.gif) no-repeat;}

.promoted a{ color:#f50;}

  • 佳能(30440)
  • 索尼(27220)
  • 三星(20808)
  • 尼康(17821)
  • 松下(12289)
  • 卡西欧(8242)
  • 富士(14894)
  • 柯达(9520)
  • 宾得(2195)
  • 理光(4114)
  • 奥林巴斯(12205)
  • 明基(1466)
  • 爱国者(3091)
  • 其它品牌相机(7275)

显示全部品牌

再看JQ代码遇新是直朋能到:

$(function(){

var $category = $('ul li:gt(5):not(:last)');

$category.hide();

var $toggleBtn = $('div.showmore > a');

$toggleBtn.click(function(){

if($category.is(":visible")){

$category.hide();

$('.showmore > a span').css("background","url(images/down.gif) no-repeat")

.text("显示全部品牌");

$('ul li').removeClass("promoted");

}else{

$category.show();

$('.showmore a span')

.css("background","url(images/up.gif) no-repeat 0 0")

.text("精简显示品牌");

$('ul li').filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')")

.addClass("promoted");

}

return false;

})

})

JQ很简单不解释,接下来,是我的JS仿写。

从效果和JQ代码中,我们都可以总结出实现这功能的思路出来:

1.获取第7个li到倒数第二个li,隐藏之。

2.获取按钮a元素,单击时显示更多,并修改按钮样式和给一些内容添加样式。

直接看代码吧:

window.onload = function(){

var list = document.getElementsByTagName('li'); //获取页面上的li

var btn = getElementsByClassName('showmore')[0].getElementsByTagName('a')[0]; //获取按钮a

var span = btn.getElementsByTagName('span')[0]; //获取a里面的span

var flag = true; //用以控制显示和隐藏切换

showHidden(list,'none'); //一个显示隐藏函数,由于多次出现,所以弄成函数

btn.onclick = function(){

if(flag){

showHidden(list,'block'); //单击时,显示出隐藏内容

for(var i = 0,l = list.length; i < l; i++){ //遍历所有内容,寻找匹配的内容,添加样式

var str = list[i].innerHTML;

if(str.indexOf("佳能") != -1 || str.indexOf("尼康") != -1 || str.indexOf("奥林巴斯") != -1){

addClass('promoted',list[i]);

}

}

span.innerHTML = "精简显示品牌"; //改变内容

span.style.background = "url(images/up.gif) no-repeat";

flag = false;

}else{

showHidden(list,'none');

for(var i = 0,l = list.length; i < l; i++){

var str = list[i].innerHTML;

if(str.indexOf("佳能") != -1 || str.indexOf("尼康") != -1 || str.indexOf("奥林巴斯") != -1){

removeClass("promoted",list[i]); //移除样式

}

}

span.innerHTML = "显示全部品牌";

span.style.background = "url(images/down.gif) no-repeat";

flag = true;

}

}

}

function showHidden(list,type){ //显示隐藏函数

for(var i = 6, l = list.length - 1; i < l; i++){

list[i].style.display = type;

}

}

function getElementsByClassName(className,node){ //通过类名获取对象

node = node || document;

if(node.getElementsByClassName){

return node.getElementsByClassName(className);

}

var eles = node.getElementsByTagName('*');

var reg = [];

for(var i = 0,l = eles.length; i < l; i++){

if(hasClass(className,eles[i])){

reg.push(eles[i]);

}

}

return reg;

}

function hasClass(className,node){ //判断对象节点是否有某个类

var eles = node.className.split(/\s+/);

for(var i = 0,l = eles.length; i < l; i++){

if(eles[i] == className){

return true;

}

}

return false;

}

function addClass(className,node){ //添加样式

return node.className += " " + className;

}

function removeClass(className,node){ //删除样式

eles = node.className.split(/\s+/);

for(var i = 0,l = eles.length; i < l; i++){

if(eles[i] == className){

eles.splice(i,1);

}

}

node.className = eles.join(" ");

return node;

}

本文来源于网络:查看 >https://www.cnblogs.com/littledu/articles/2034959.html

html5 js单击隐藏显示,《锋利的JS》 之 单击显示隐藏相关推荐

  1. 原生js设置div隐藏或者显示_10种JS控制DIV的显示隐藏代码

    div隐藏与显示 #menus { background-color: #c4cff0; } function Layer_HideOrShow(cur_div) { var current=docu ...

  2. java点击按钮隐藏图片6_原生JS实现隐藏显示图片 JS实现点击切换图片效果

    今天要说的内容,看标题就都能知道了!所有知识点一览无遗啊!咱们今天的东西,是纯纯的原生JS代码, 我先说一下要求: 1.有两个按钮,内容为显示,和换, 2.当点击显示的时候,按钮文字变成隐藏,同时图片 ...

  3. html5在线显示word文档,JS实现获取word文档内容并输出显示到html页面示例

    本文实例讲述了js实现获取word文档内容并输出显示到html页面.分享给大家供大家参考,具体如下: title var w = new activexobject('word.application ...

  4. Python 3、selenium/执行js命令显示隐藏元素,封装js工具类

    为什么需要js? 我们需要执行函数,但是实现成本很高或很难甚至无法实现事件的时候,可以直接通过js命令调用 页面上有些元素无点击事件,不可点击等,调用js直接实现效果即可 还有种种原因导致,没达到我们 ...

  5. CountUp.js – 让数字以非常有趣的动画方式显示

    CountUp.js 无依赖的.轻量级的 JavaScript 类,可以用来快速创建以一种更有趣的动画方式显示数值数据.尽管它的名字叫 countUp,但其实可以在两个方向进行变化,这是根据你传递的 ...

  6. HTML5系列四(特征检测、Modernizr.js的相关介绍)

    Modernizr:一个HTML5特征检测库 Modernizr帮助我们检测浏览器是否实现了某个特征,如果实现了那么开发人员就可以充分利用这个特征做一些工作 Modernizr是自动运行的,无须调用诸 ...

  7. 锋利的js前端分页之jQuery

    原文:锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的 ...

  8. 【翻译】HTML5开发——轻量级JSON存储解决方案Lawnchair.js

    [翻译]HTML5开发--轻量级JSON存储解决方案Lawnchair.js 参考文章: (1)[翻译]HTML5开发--轻量级JSON存储解决方案Lawnchair.js (2)https://ww ...

  9. html表格中绑定显示xml文档内容的简单实例,JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)...

    本文实例讲述了JS读取XML文件数据并以table形式显示数据的方法.分享给大家供大家参考,具体如下: 先看xml文件: 张秋丽 女 18 李文才 男 31 李斯文 男 22 马英 女 25 孙红雷 ...

  10. [js] script所在的位置会影响首屏显示时间吗

    [js] script所在的位置会影响首屏显示时间吗 会,如果script放在头部,js的执行会阻塞dom树的构建 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎 ...

最新文章

  1. 在Pycharm工具中配置集成Git和GitHub
  2. R语言head函数和tail函数获取dataframe、列表list、向量vector的头部和尾部数据:tail提取数据对象的尾部数据、head提取数据对象的头部数据、默认6条数据、自定义设置返回条数
  3. 用thinkphp进行微信开发的整体设计思考
  4. antd From 中 Form.Item里含有自己封装的组件,获取不到值的解决方法
  5. anaconda3 tensorflow安装踩坑记(WIN10+tensorflow带gpu版本)
  6. 正整数的唯一分解定理 c语言,SSOJ2662正整数的唯一分解定理
  7. “腾讯持股比例提升”系误读!美团对外定增后腾讯持股比例降低
  8. 我的小快排(两种分割方法)
  9. autobuddy in mfc导致的错误
  10. Scratch3.0 桌面版下载安装使用
  11. MATLAB从fig文件中获取数据
  12. Uphone开发心得
  13. 陈赫孙艺洲携手《你的带货王2020》PK带货 玛莎拉蒂究竟花落谁家?
  14. vSAN 6.6在线研讨会-4月20日下午2:30 amp;amp; 小提示:如何理解FTT与纠删码的组合?
  15. 【论文精读】A Survey on Deep Learning for Named Entity Recognition
  16. 最笨的管理,就是什么事都自己做
  17. 庖丁解牛式读《Attention is all your need》
  18. 数据处理如同流水——介绍下偶的数据流引擎Samsara
  19. 3.5 视频服务器-RTSP实现(框架搭建)
  20. 蔡徐坤正式成为FILA全新代言人

热门文章

  1. 11月编程语言排行榜出炉,Python排名势如破竹
  2. Go语言Web开发Echo框架搭建
  3. 舒尔补(Schur Complement)
  4. 51单片机+驱动LCD1602模板范例+Proteus仿真
  5. 一句让我觉得很有道理的话
  6. 13100-46-4,1,2,3,4-Tetra-O-acetyl-β-D-glucopyranose,1,2,3,4-四-邻-乙酰基-BETA-D-吡喃(型)葡萄糖
  7. 网购秒杀系统架构设计 1
  8. C++ sqrt()
  9. 第四周项目三(1)—链表的逆置
  10. 《月亮与六便士》阅读笔记