2012-05-30 4 views
0

나는이 기능을 사용하고 있습니다 :누락 된 괄호 오류 자바 스크립트

function sel_test(e) { 
    //alert(e.length-1); 

    var splitdata = e.split("d"); 
    var newstr = e.substring(0,e.length-1); 

    dropcall = 1; 
    nodes = newstr.split(';'); 
    o = 0; 
    if (nodes[0] == '1') o = nodes.shift(); 
    for (i=0;i<nodes.length;i++) { 
    e = nodes[i]; 
    var ul = document.getElementById(e); 
    if (icons) var img = document.getElementById(e+'i'); 
    if (ul) { 
     if (((ul == 'none') AND (ul.style.display == 'none')) OR (ul.style.display == '')) { 
     ul.style.display = 'block'; 
     } else if (!o) { 
     ul.style.display = 'none'; 
     } 
    } 
    } 

자바 스크립트 나에게없는 괄호의 오류를주고있다 :

if (((ul == 'none') AND (ul.style.display == 'none')) OR (ul.style.display == '')) {

어떤이이 일을 올바른 방법.

+0

"AND"및 "OR"의 구문 오류가 표시되지 않으면 다른 버전의 자바 스크립트가 있어야합니다. –

+0

AND 및 OR 식별자가 잘못 되었습니까? –

+0

@ zhujy_8833 : 유효한 식별자이지만 잘못된 연산자이므로 해석 될 수있는 식별자로 정의 된 경우에도 JS는 명령문을 분리하기 위해 세미콜론을 찾습니다. –

답변

4

& & 및 || AND 및 OR 대신.

안 그래도 돼?

+0

&& perl을 사용하는 경우 perl 파일을 추가 할 때 오류가 발생합니다 – jbcedge

+3

나는 이것이 자바 스크립트라고 말한 줄 알았습니까? –

+0

질문하지 않고 답변을 게시 할 수 있습니까? –

3

이 시도 :

if (((ul == 'none') && (ul.style.display == 'none')) || (ul.style.display == '')) 

자바 스크립트는 AND 연산자를 가지고 있지만 단어 AND 아니다, 그것은 (비트 단위 및 위해도 &) &&입니다. 마찬가지로 OR 대신 || (비트 단위로는 |)이 필요합니다. 당신의 ul 변수가 문자열 'none' 동일 결코

주 - 어떤 요소가 제공된 ID가없는 경우 document.getElementById(e)의 반환은 항상 일치하는 DOM 요소, 또는 null이 될 것입니다.

추가 읽기 : Logical Operators (&&|| 항상 true 또는 false을 반환하지 않고 MDN이 설명하기 때문에 당신이 , 그것을 읽어야한다).

0

함수의 닫는 오른쪽 구배도 누락되었습니다.

+0

또한 이클립스는 splitdata와 img가 읽히지 않는다고 말하면서 명시 적으로 선언하지 않았습니다. –

+0

splitdata에 대해 잊어 버리십시오. iam은 – jbcedge

+1

을 잊어 버리지 않았습니다. - 본 적이없는 것 같습니다. –