从一个数字获取数字集的数学方法

时间:2011-04-19 02:31:56

标签: javascript jquery

我使用的是javascript,但我认为这个想法适用于所有语言。这个想法是,如果您有4个数字中的1个,您可以获得其他数字。像这样:

1 = 234
2 = 134
3 = 124
4 = 123

如果你有1,你输出234,等等,最有效的方法是什么?你必须使用数组,循环吗?

类似:

var fruits = ["#apple", "#orange", "#peach"];
for (i = 0; i <= fruits.length-1; i++) {
    $(fruits[i]).show;
    $(fruits[WANT TO BE not i]).hide;//on loop would want to be other number besides i
    $(fruits[WANT TO BE not i]).hide;//on loop would want to be other number besides i
}

2 个答案:

答案 0 :(得分:2)

我不知道效率,但由于你已经在使用jquery,为什么不这样做:

<div id="apple" class="fruit">...</div>
<div id="orange" class="fruit">...</div>
<div id="peach" class="fruit">...</div>

$('.fruit').click(function() {
   $('.fruit').hide();
   $(this).show();
});

编辑:

如果我正确识别您的需要,您希望每次用户在编辑幻灯片上单击2时显示幻灯片2。

在这种情况下,您可以将id和class附加到要显示的幻灯片,如下所示:

<div id="slide_1" class="slide"><img src="1.jpg" /></div>
<div id="slide_2" class="slide"><img src="2.jpg" /></div>
<div id="slide_3" class="slide"><img src="3.jpg" /></div>

并将rel添加到您的

<ul class="navigationList">
   <li><a href="#" rel="slide_1">1</a></li>
   <li><a href="#" rel="slide_2">2</a></li>
   <li><a href="#" rel="slide_3">3</a></li>
</ul>

现在javascript:

$('ul.navigationList li a').click(function(e) {
    e.preventDefault();
    var slideId = $(this).attr('rel');
    $('.slide').hide();
    $('#' + slideId).show();
    return false;
});

同样,这只是其中一种方式。

答案 1 :(得分:1)

我认为这太过分了,但是如果你需要使用我无法想象的用例来做这件事,你总是可以这样做(使用你的水果示例):

var fruits = ["#apple", "#orange", "#peach"];

function showOne(n)
{
    for(i = 0; i < fruits.length; ++i)
    {
        if(n != i)
        {
            $(fruits[i]).hide();
        }
        else
        {
            $(fruits[i]).show();
        }
    }
}

$(document).ready(function(){
    showOne(2);
});

<强> Fiddle here

修改

基于查看来源的一些事情(1和2只是我自己的意见:)):

  1. 没有问题我将所有内容分解为单个页面。它们不仅在逻辑上不属于一体,而且我会讨厌来查看最终结果代码(可怕的臃肿)。
  2. 除了拆分页面之外,我还会在后端使用大部分功能,而不是客户端。
  3. 如果您打算在所有客户端执行此操作,那么我实际上完全改变了您拥有的逻辑:
  4. HTML:

    <a onclick="nav('slides'); return false;" href="#slides">Edit Slides</a>
    <a onclick="nav('pages'); return false;" href="#pages">Edit Pages</a>
    <a onclick="nav('projects'); return false;" href="#projects">Edit Projects</a>
    

    脚本:

    function nav(panel)
    {
        $('.section').hide();
        $(panel).show();
    }
    

    KISS。没有理由让事情过于复杂:)