首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三值算子中的If/else冗余码

三值算子中的If/else冗余码
EN

Stack Overflow用户
提问于 2022-07-20 23:33:54
回答 1查看 33关注 0票数 0

这段代码工作得很好,但是它看起来可以被优化,因为它只是颠倒了三元顺序。知道怎么做到吗?

代码语言:javascript
复制
if ($("#advanced-search-panel").hasClass("hidden")) {
    adv_text.text(adv_text.text() == "Show advanced search" ? "Hide advanced search" : "Show advanced search");
}else{
    adv_text.text(adv_text.text() == "Hide advanced search" ? "Show advanced search" : "Hide advanced search");
}
EN

回答 1

Stack Overflow用户

发布于 2022-07-20 23:42:54

因为adv_text.text()只有两种可能性-显示和隐藏-整个条件

代码语言:javascript
复制
if ($("#advanced-search-painel").hasClass("hidden")) {

是多余的,因为不管类是否存在,您都希望根据当前文本的不同,切换从show隐藏或从隐藏到显示的文本。您的代码简化为

代码语言:javascript
复制
adv_text.text(
  adv_text.text() == "Show advanced search" ? "Hide advanced search" : "Show advanced search"
);

另一种选择是为文本中更改的部分设置一个内联元素,这样您只需检查并更改它。

代码语言:javascript
复制
<div><span class="adv-search-toggle-text">Show</span> advanced search</div>
代码语言:javascript
复制
const span = $('.adv-search-toggle-text');
span.text(span.text() === 'Show' ? 'Hide' : 'Show');

听起来,hidden类可能与上面的文本切换有关。如果是这样的话,就有可能单独使用CSS规则在应用隐藏类时显示Show,而在未应用隐藏类时显示Hide

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

https://stackoverflow.com/questions/73059161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档