2009-07-27 3 views
0

나는 나 SSI 파일을 호출 페이지에 표시되지 않을 수도 있습니다 요소의 무리를 숨 깁니다 내 SSI 파일 중 하나에서 자바 스크립트 이벤트 핸들러를 가지고있다. 결과적으로 처리기는 숨길 요소를 찾을 수 없을 때까지 원활하게 진행되고 숨길 수있는 요소를 완료하기 전에 중지합니다. 그렇다면 요소가 페이지에 있는지 처리기를 통과하는지 여부에 신경 쓰지 않으려면 JavaScript를 어떻게 얻을 수 있습니까?요소를 숨길 수있는 경우에만 JavaScript를 요청하여 숨길 수 있습니까?

감사합니다.
마이크

답변

8

는 요소를 얻고있는 방법에 따라 달라집니다. 당신이 JS 라이브러리를 사용하지 않는 경우에 당신이 뭔가를 할 수 있습니다 :

/* handler begin code */ 
var el = document.getElementById('myElement'); 
if (el) { 
    //do work 
} 
/* handler end code */ 

그것의 쉬운 당신은 어떤 작업을 존재하지 않는 경우에도 다음 요소를 선택 할 수 있습니다 jQuery를, 같은 것을 사용하는 경우

if(document.getElementById("myelementId")) document.getElementById("myelementId").style.display = "none"; 

당신은에 넣을 수 : 선택한 세트에 보통 오래된 자바 스크립트에서 예외

//this will work even if myElement doesn't exist - no exceptions will be thrown 
$("#myElement").hide(); 
1

일부 코드는 이것에 대해 제대로이 답변을 좋은,하지만 다음과 같습니다

if (element) { 
    element.hide(); 
} 
+0

또는 더 간결하게 : 요소 && element.hide(); – HBP

+0

To-may-to, To-mah-to. ;) – deceze

+0

실제로 jQuery 요소를 사용하면 미리 선택을 시도하는 동안 null이 될 수 없습니다. 요소가 없다면 그냥 비어있는 jQuery 배열이 될 것입니다. –

0

를 포기하지 않습니다 (더 라이브러리) 당신은 숨길 각 ID에 대해이 작업을 수행하지 루프가 너무 좋아하는 경우 :

var elementsToHide = ["tom","dick","harry"]; 

for(var i in elementsToHide) { 
    var element = document.getElementById(elementsToHide[i]); 
    if(element) element.style.display = "none"; 
} 
관련 문제