首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使我的代码不那么冗长

如何使我的代码不那么冗长
EN

Stack Overflow用户
提问于 2015-02-10 12:31:05
回答 6查看 156关注 0票数 0

我在Wordpress中使用jQuery,它正在做我希望它做的事情。问题是,对于相同的操作,我必须重写正在使用的函数4次(目前,可能更晚)。我知道一定有一种方法可以避免使用$(this)的冗余,但是我还没有弄清楚在哪里使用它或者如何使用它。

这是我正在使用的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
var x = jQuery.noConflict();
x(function(){
x(".jab .jabcierre1").hide();
x("h2.c1").click(function(){
    x(".jab .jabcierre1").slideToggle(200);
});



x(".jab .jabcierre2").hide();
 x("h2.c2").click(function(){
    x(".jab .jabcierre2").slideToggle(200);
});

x(".jab .jabcierre3").hide();
 x("h2.c3").click(function(){
    x(".jab .jabcierre3").slideToggle(200);
});

x(".jab .jabcierre4").hide();
 x("h2.c4").click(function(){
    x(".jab .jabcierre4").slideToggle(200);
});


});
</script>

但是,正如您所知道的,这样做的全部目的是隐藏一个包含我想要隐藏的html的div,并在单击h2标题时显示该div。我必须给每个h2提供一个包含1、2、3等的类,这样当单击标题(h2)时,它就不会触发页面中的所有h2s,这就是为什么每次添加新的div时都不得不重写函数的原因。

好的,这里是HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="jab clearf">
<h2 class="c1">LAVANDA</h2>
<div class="jabcierre1">
<ul class="benef">
<h3>Beneficios</h3>
<li>Piel Grasa</li>
<li>Relajante</li>
<li>Problemas de Estrias</li>
</ul>

<ul class="ingreds">
<h3>Ingredientes</h3>
<li>Aceite de Palma</li>
<li>Aceite de Coco</li>
<li>Acite de Aguacate</li>
<li>Acite de Pepita de uva</li>
<li>Acite de Almendras</li>
<li>Aceites esenciales</li>
<li>Leche de cabra</li>
</ul>
<img src="http://www.granjaelmolino.com.mx/wp-content/uploads/2015/02/jabon-artesanal-23.jpg" alt="jabon-artesanal-27" width="350" class="alignright size-full wp-image-455" />
</div>
</div>
<!--  ////////////////////////  termina lavanda      /////////////////////////    -->

<div class="jab clearf">
<h2 class="c2">Romero</h2>
<div class="jabcierre2">
<ul class="benef">
<h3>Beneficios</h3>
<li>Piel Grasa</li>
<li>Ayuda con problemas de Acne</li>
</ul>

<ul class="ingreds">
<h3>Ingredientes</h3>
<li>Aceite de Palma</li>
<li>Aceite de Coco</li>
<li>Acite de Aguacate</li>
<li>Acite de Pepita de uva</li>
<li>Acite de Almendras</li>
<li>Aceites esenciales</li>
<li>Leche de cabra</li>
</ul>
<img src="http://www.granjaelmolino.com.mx/wp-content/uploads/2014/12/jabon-artesanal-27.jpg" alt="jabon-artesanal-27" width="350" class="alignright size-full wp-image-455" />
</div>
</div>

<!--  ////////////////////////  termina Romero  /////////////////////////    -->

<div class="jab clearf">
<h2 class="c3">Citricos</h2>
<div class="jabcierre3">
<ul class="benef">
<h3>Beneficios</h3>
<li>Ayuda con problema de piel manchada</li>
<li>Ayuda con problemas piel de paño</li>

</ul>

<ul class="ingreds">
<h3>Ingredientes</h3>
<li>Aceite de Palma</li>
<li>Aceite de Coco</li>
<li>Acite de Aguacate</li>
<li>Acite de Pepita de uva</li>
<li>Acite de Almendras</li>
<li>Leche de cabra</li>
<li>Aceites esenciales</li>
</ul>
<img src="http://www.granjaelmolino.com.mx/wp-content/uploads/2015/02/jabon-artesanal-26.jpg" alt="jabon-artesanal-27" width="350" class="alignright size-full wp-image-455" />
</div>
</div>

<!--  ////////////////////////  termina Citricos  /////////////////////////    -->

<div class="jab clearf">
<h2 class="c4">Almendras</h2>
<div class="jabcierre4">
<ul class="benef">
<h3>Beneficios</h3>
<li>Ayuda con problema de piel reseca</li>
<li>Ayuda con problemas de diabetes</li>

</ul>

<ul class="ingreds">
<h3>Ingredientes</h3>
<li>Aceite de Palma</li>
<li>Aceite de Coco</li>
<li>Acite de Aguacate</li>
<li>Acite de Pepita de uva</li>
<li>Acite de Almendras</li>
<li>Leche de cabra</li>
<li>Aceites esenciales</li>
</ul>
<img src="http://www.granjaelmolino.com.mx/wp-content/uploads/2015/02/jabon-artesanal-24.jpg" alt="jabon-artesanal-27" width="350" class="alignright size-full wp-image-455" />
</div>
</div>
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-02-10 12:43:30

就像这样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jQuery(function($){
    var jab = $('.jab [class^="jabcierre"]').hide();

    $('h2[class^="c"]').on('click', function(){
        jab.filter('.jabcierre' + this.className.slice(-1)).slideToggle(200);
    });
});
票数 1
EN

Stack Overflow用户

发布于 2015-02-10 12:41:06

您可以创建一个函数,将选择器作为参数传递到其中。然后,您只需使用这些参数作为变量,以了解要隐藏或显示哪个。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
  var x = jQuery.noConflict();

  function foo(selector1,selector2){
    x(selector1).hide();
    x(selector2).click(function(){
      x(selector1).slideToggle(200);
    })
  };

  foo(".jab .jabcierre1","h2.c1");
</script>
票数 0
EN

Stack Overflow用户

发布于 2015-02-10 12:42:13

您可以将类名放入数组并迭代如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x(function() {

    var elements = [".jab .jabcierre1", ".jab .jabcierre2"];
    var controls= ["h2.c1", "h2.c2"];

    for ( var n = 0; n < elements.length; n++ )
    {
        x(elements[n]).hide();
        x(controls[n]).click(function(){
             x(elements[n]).slideToggle(200);
        });

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28441190

复制
相关文章
如何优化冗长的条件语句
【1】尽量少用 else 尽量多用 if reture 的语法方式。 【2】字典的逻辑对应转化作用。 【3】用多态替代条件语句 【4】策略模式,继承重写,抽象父类和统一的接口入口。
進无尽
2018/09/12
1.3K0
如何优化冗长的条件语句
如何利用策略模式避免冗长的 if-else/switch 分支判断代码?
策略模式。在实际的项目开发中,这个模式也比较常用。最常见的应用场景是,利用它来避免冗长的 if-else 或 switch 分支判断。不过,它的作用还不止如此。它也可以像模板模式那样,提供框架的扩展点等等。对于策略模式。本篇我们讲解策略模式的原理和实现,以及如何用它来避免分支判断逻辑。后续我会通过一个具体的例子,来详细讲解策略模式的应用场景以及真正的设计意图。话不多说,进入主题
码农架构
2021/01/14
6320
如何使iOS后台运行代码
最近在开发一个关于校园的项目,其中有这么一个需求:学生晚上8:00第一次打完卡后在当天夜晚11:00时需要再一次上传学生当前地理位置,判断是否还在宿舍(MMP防不胜防)。但是最后一次上传是不需要学生操作的,APP默默的执行。
用户6094182
2019/08/23
1.8K0
如何使iOS后台运行代码
如何利用策略模式避免冗长的if-else/switch分支判断代码?
策略模式。在实际的项目开发中,这个模式也比较常用。最常见的应用场景是,利用它来避免冗长的 if-else 或 switch 分支判断。不过,它的作用还不止如此。它也可以像模板模式那样,提供框架的扩展点等等。对于策略模式。本篇我们讲解策略模式的原理和实现,以及如何用它来避免分支判断逻辑。后续我会通过一个具体的例子,来详细讲解策略模式的应用场景以及真正的设计意图。话不多说,进入主题
码农架构
2021/01/25
9170
都2019了,为何你的 JavaScript 代码还如此冗长~
如果你还在为回调陷阱烦恼不已,那么就应该赶快扔掉这些2014年的代码了。除非绝对必要(比如某个库要求回调,或者出于性能的原因),否则不要再用回调了。Promise也不错,但当代码规模越来越大时,它们总是有些别扭。
苏南
2020/12/16
8240
都2019了,为何你的 JavaScript 代码还如此冗长~
如何成为一位「不那么差」的程序员
也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。
crossoverJie
2022/08/19
2220
如何成为一位「不那么差」的程序员
我如何用一行Css代码使谷歌浏览器的数据网格滚动快10倍
在 我的公司, 我们使用 谷歌搜索控制台 来检查索引状态和优化我们的网站的可见性。您还可以检查哪些外部网站链接到您的页面,当我浏览"顶部链接网站"页面时,我注意到了 主要 的滚动滞后。当选择显示较大的数据集(500 行)而不是默认的 10 个结果时,就会发生这种情况。
OwenZhang
2021/12/09
2.2K0
我如何用一行Css代码使谷歌浏览器的数据网格滚动快10倍
使WordPress运行PHP代码的插件
众所周知,WordPress的侧边栏和文章不能够直接运行自定义的php代码,reizhi今天给各位介绍一个插件,它能改变这一现状。
reizhi
2022/09/26
7670
使WordPress运行PHP代码的插件
如何成为一位「不那么差」的程序员
也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。
纯洁的微笑
2018/09/26
4420
使你的 JavaScript 代码简单易读[每日前端夜话0x4C]
解决一个问题可以有很多方法,但是有些方法很复杂,甚至有些是荒谬的。在本文中,我想谈谈解决一个问题时的好方案和坏方案。
疯狂的技术宅
2019/04/23
6140
使网站兼容手机版本的代码
只需在头信息<head></head>下放入如下代码即可 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" /> <meta content="telephone=no" name="format-detection" /> <meta name="apple-mobile-web-app-capable
WindCoder
2018/09/20
3.7K0
如何成为一位「不那么差」的程序员
也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。
Java团长
2019/07/11
4570
如何成为一位「不那么差」的程序员
如何使 Grafana as code
Grafana Dashboard 可以做很多事情,但您知道其实是可以通过代码来配置管理 Grafana Dashboard 的吗?本文是 Grafana Labs 软件开发工程师 Malcolm Holmes 和 Inuits 的开源顾问 Julien Pivotto 在 FOSDEM 2020 上的 topic 演讲记录。演讲中,两人讨论了如何使用代码来管理您的 Grafana 实例,并介绍了一些使用 Jsonnet[1] 的秘诀和技巧以及 Grafonnet[2](一个用于生成 Grafana Dashboard 的 Jsonnet 库)。
郭旭东
2020/12/30
1.7K0
如何使 Grafana as code
如何使Ubuntu的语言变成中文??
当我们打开Ubuntu系统后,一些英语稍差一点的同学是不是用这个系统用起来感觉有点吃力呢?要是Ubuntu系统会讲中文就好了。那如何让Ubuntu这个系统学会中文呢?接下来就有我来带你们一步步的让自己的Ubuntu系统学会中文吧!! ## (注意:可能有些步骤需要输入你的登录密码!!!)
种花家的奋斗兔
2020/11/13
4.2K0
如何使Ubuntu的语言变成中文??
如何快速的部署我的博客(Django)代码
上篇文章介绍了我博客的一个架构,这里具体说下我是如何快速的通过git和fabric来持续部署我的博客的。
the5fire
2019/02/28
1K0
如何使你的开源项目成功[每日前端夜话0xD0]
你已经为一个有趣的问题工作了几个月,现在决定启动一个开源项目。你在 README.md 中编写了一些说明,并发布了1.0版。
疯狂的技术宅
2019/10/14
1.1K0
如何使你的开源项目成功[每日前端夜话0xD0]
是什么使代码 “Swifty”? —— Safe
尽管编程语言是由其语法正式定义的,但实际上在实践中使用它们的方式还是可以由它们当前的约定来确定的。毕竟,就语法而言,大多数受“ C影响 ” 的语言看起来都非常相似,以至于您可以用几乎使它看起来像JavaScript,C#或C本身的方式编写Swift。
韦弦zhy
2020/03/20
8790
是什么使代码 “Swifty”? —— Safe
什么使DevOps中的代码审查良好?[DevOps]
改善软件开发生命周期,向客户交付软件的速度以及该软件的质量都是DevOps的重要前提。这些是DevOps运动规定的工具和技术试图达到的目标。作为开发人员,感到很自由,可以快速进行更改,不仅可以更改源代码,还可以更改基础结构和配置代码。作为DevOps的从业者,目标是在质量与安全性之间实现平衡。如何?可以使用的一种工具是代码审查。
yyx
2019/12/24
9750
什么使DevOps中的代码审查良好?[DevOps]
使你的C/C++代码支持Unicode
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
用户7886150
2021/02/17
8800
是什么使代码 “Swifty”? —— Expressive
Swift的官方网站上的About页面列出了三个关键字: 安全(Safe):为了最大限度地减少开发人员的错误; 迅速(Fast):执行的速度要快; 表现力(Expressive):因为Swift
韦弦zhy
2020/03/20
6480
是什么使代码 “Swifty”? —— Expressive

相似问题

如何使我的JSON不那么冗长?

44

如何使指令不那么冗长?

21

如何使webpack不那么冗长?

129

如何使输出不那么冗长?

230

如何使'svn导出‘不那么冗长?

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文