use*_*473 2 javascript php jquery
我已经编写了一个函数来在三个链接之间放置“,”和“ and”,如果没有其他语句,我该如何减少。在javascript中,如果count不为零,我将得到count,这意味着链接必须显示,否则应该隐藏
在以下情况下
function inst_grammer()
{
var otherCount = parseInt($('.global_other_count').html());
var initCount = parseInt($('.global_init_count').html());
var signCount = parseInt($('.global_sign_count').html());
var init_class = $('.inst_init');
var sign_class = $('.inst_sign');
if (signCount != 0 && initCount != 0 && otherCount == 0)
{
init_class.html('').fadeOut();
sign_class.html(' and ').fadeIn();
} else if (signCount == 0 && initCount != 0 && otherCount != 0)
{
init_class.html(' and ').fadeIn();
sign_class.html('');
} else if (signCount != 0 && initCount != 0 && otherCount != 0)
{
init_class.html(' and ').fadeIn();
sign_class.html(' , ').fadeIn();
}
else if (signCount != 0 && initCount == 0 && otherCount == 0)
{
init_class.html('').fadeOut();
sign_class.html('').fadeOut();
}
else if (signCount == 0 && initCount != 0 && otherCount == 0)
{
init_class.html('').fadeOut();
sign_class.html('').fadeOut();
}
else if (signCount == 0 && initCount == 0 && otherCount != 0)
{
init_class.html('').fadeOut();
sign_class.html('').fadeOut();
}
else if (signCount != 0 && initCount == 0 && otherCount != 0)
{
init_class.html('').fadeOut();
sign_class.html(' and ').fadeIn();
}
}
Run Code Online (Sandbox Code Playgroud)
我认为每个人都在错误地看待这个问题。它不是关于简化if',而是关于在语法序列中插入“,”和“ and”分隔符的算法。
任何解决此问题的方法都应允许任何数量的项目(不仅限于指定的3个项目)。否则,if如果规格发生变化,您可能会获得数量大大增加的测试。当然更可重用(即,如果业务需求发生变化)。
在此示例中,我收集的意图是提供一个显示以下选项的显示:
因此规则是:
所以基本上对于n> 1,最后一个分隔符是“ and”,所有其他分隔符都是“,”。这个简单的规则可以应用于任何数量的项目。
您可以通过简单地计算非零项目的数量来获得此效果。 正如我在评论中提到的那样,将您的数据放入一个数组中,以便您可以简单地对其进行迭代。这意味着您的输出字段也应该位于数组中,因此您只按顺序显示所需的字段。
如果愿意提供HTML示例,很高兴提供代码,但是您应该能够从这些简化的规则中找出答案。:)
| 归档时间: |
|
| 查看次数: |
1538 次 |
| 最近记录: |