2014-09-12 4 views
0

다음이 있습니다. $('#plateread').show()IF ..... ELSE 절만 사용하면 $('#fix_2').show();&&을 추가하면 작동하지 않습니다. 이 경우 && 기호를 사용할 수 없습니까? 내가 틀렸어?JavaScript에서 && 사용

$(document).ready(function() { 
    $('#select_rg').change(function(){ 
     if($('#select_rg').val()=='Registered') 
      $('#plateread').show() && $('#fix_2').show(); 
     else 
      $('#plateread').hide() && $('#fix_2').hide(); 
    }) 
    .change(); 
}); 
+1

의 jQuery 방법과 조금이 조여은 truthy 값입니다 jQuery를 수집을 반환합니다. – elclanrs

+0

* "이 경우 && 기호를 사용할 수 없습니까?"* 달성하고자하는 바에 달려 있습니다. 확실히 사용할 수 있습니다. 문법 오류가 아니지만 나중에 효과를 얻지 못할 수도 있습니다. 그러나 당신이 원하는 것을 우리에게 말하면 우리는 진정으로 당신을 도울 수 있습니다. –

+0

@FelixKling 인수가 true이면 모두 숨겨지기를 원합니다. 인수가 모두 유효하고 유효한지 확인해야하는 경우 위 코드에서와 && 기호를 함께 사용할 수 있습니까? – user3762389

답변

0

&& 논리 연산자이고, 두 문장을 실행 동시 나던 아니라 중 하나 또는 truefalse 값으로 그 문장을 평가한다.

e. 두 가지 조건이 충족되는 경우 :

If (condition1 && condition1) { ..Do something .. } 

대신이 작업을 수행 :

$(document).ready(function() { 
$('#select_rg').change(function() { 
    if ($('#select_rg').val() == 'Registered') { 
     $('#plateread').show(); 
     $('#fix_2').show(); 
    } else { 
     $('#plateread').hide(); 
     $('#fix_2').hide(); 
    } 
}) 
    .change(); 
}); 
+0

나는 downvote하지 않았지만 실제로 반환 된 jQuery 세트가 사실 (true로 평가 된) 값이기 때문에 실제로 작동해야한다. 그래서 두 가지 메소드 모두 실행된다. http://jsfiddle.net/xx55c5g5/ –

+0

'function sayHiNicely() {console.log ("안녕하세요"); 참을 돌려라. }''sayHiNicely() && sayHiNicely()'는 "Hi"가 콘솔에 두 번 쓰여지는 결과를 낳습니다. JavaScript 부울 연산자는 두 표현식을 동시에 평가하지 않지만 첫 표현식의 결과를 true로 강제 변환 할 수 있으면 두 표현식을 모두 순차적으로 평가합니다. OP의 원래 코드가 문제없이 작동하는 예제는 http://jsbin.com/jomacabexuse/1/edit를 참조하십시오. (나는 그것이 가치가있는 것을 위해 투표를하지 않았다). –

+0

@SeanVieira interesting. 나는 그것을 몰랐다. 제 대답은 어떻게 든 OP를 도왔습니다.하지만 당신과 함께 시원하게한다면 나는 후손에 대한 당신의 의견으로 나의 대답을 업데이트하고 싶습니다. – agconti

0

$(document).ready(function() { 
    var select_rg  = $('#select_rg'), 
     is_registered = select_rg.val() === 'Registered', 
     toggle_elts = $('#plateread, #fix_2'); 

    select_rg.change(function() { toggle_elts.toggle(is_registered); }); 
}); 
+0

또는 조금 더 간단합니다 :'$ ('# plateread, # fix_2') 토글 ($ ('select_rg') .Val() === 'Registered') ' –

+1

그래, 내 jQuery가 녹슬 었어. . 이 제안을 제 대답에 포함시킬 자유를 얻었습니다. –

관련 문제