2011-04-19 2 views
0

저는 자바 스크립트를 사용하고 있지만이 아이디어는 모든 언어에 적용됩니다. 아이디어는 당신이 다른 숫자를 얻을 수있는 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 
} 
+0

당신이 찾고있는 것은'map'입니다. 연관 배열로 구현되었습니다. – ianace

+2

특정 클래스의 모든 dom 요소를 스틱링하지 않고 모든 요소를 ​​숨기고 네가 원하는 걸 보여줘? –

답변

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. 당신이 모든 클라이언트 쪽 일을 설정하는 경우, 다음 사실은 완전히 당신이 가지고있는 논리를 변경할 것 :

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. 과도하게 복잡하게하는 이유는 없습니다 :)

+0

고마워,하지만 기능/인수를 사용하지 않도록 노력하고있어. – ThomasReggi

+0

왜 그런 식으로하고 싶습니까? ... 물론, 스파게티 코드를 프로젝트에 버려두고 싶지는 않습니다. –

+0

http://dev.reggi.com/so/dashboard 소스를 확인하십시오. – ThomasReggi

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를 클릭 할 때마다 슬라이드 2를 표시하려고합니다.

<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> 

하고 지금

<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> 

자바 스크립트에 확인해을 추가 :이 경우

, 당신은 당신이 보여과 같이 할 슬라이드에 아이디와 클래스를 첨부 할 수 있습니다

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

다시 말하지만이 방법 중 하나 일뿐입니다.

+0

내 버튼이 내가 숨기고 표시하는 것과 다릅니다. – ThomasReggi

+0

나는 html/js의 특정 답변을 원한다면 원하는 것을 얻는 방법에 대한 일반적인 아이디어를 줄뿐 아니라 html도 게시하십시오. –

+0

http://dev.reggi.com/so/dashboard/ – ThomasReggi

관련 문제