DIV,

2010-08-17 7 views
1

는 안녕 난 일부 CSS 자바 스크립트DIV,

에서 속성을 변경하려면 CSS를 자바 스크립트에서 속성을 얻을하지만 난 그 DIV 여기

에 대한 액세스 CSS 값을 기울인다 것은 내가 내 CSS 파일에있는 것입니다

즉 여기

<div id="sidebar"> 
    <%@ include file="some_page.jsp" %> 
</div> 

를 div에 내 자바 스크립트 코드 O 형 여기

#sidebar { 
float: left; 
width: 160px; 
padding: 25px 10px 0 20px; 
} 

#sidebar ul { 
margin: 0; 
padding: 0; 
list-style: none; 
} 

내 HTML 코드입니다 N 약간의 클릭 이벤트 전 폭 속성을 변경하려면

var element = document.getElementById('sidebar'); 
alert(element.style.length); //Will alert 0 
alert(element.style.width);//Empty alert box 

, 는 유 제발 도와 드릴까요?

여기에서 코드를 기반으로,이 코드를 사용해보십시오 당신에게

+1

alert() 대신 firebug와 console.log()를 사용하면 firebug의 Console (콘솔) 탭에서 더 나은 메시지를 얻을 수 있습니다. – greg0ire

답변

5

감사합니다 : http://www.quirksmode.org/dom/getstyles.html

var sidebarWidth = getStyle('sidebar','width'); 

function getStyle(el,styleProp) { 
    el = document.getElementById(el); 
    return (el.currentStyle) 
     ? el.currentStyle[styleProp] 
     : (window.getComputedStyle) 
      ? document.defaultView.getComputedStyle(el,null) 
            .getPropertyValue(styleProp) 
      : 'unknown'; 
}​ 

편집 :

아마도 더 읽을 버전을 제공하려면 이 코드는 quirksmode 버전에 더 가깝습니다. 불필요한 변수를 제거하기 위해 그것을 변경했습니다.

var sidebarWidth = getStyle('sidebar','width'); 

function getStyle(el,styleProp) { 
    el = document.getElementById(el); 
    var result; 
    if(el.currentStyle) { 
     result = el.currentStyle[styleProp]; 
    } else if (window.getComputedStyle) { 
     result = document.defaultView.getComputedStyle(el,null) 
            .getPropertyValue(styleProp); 
    } else { 
     result = 'unknown'; 
    } 
    return result; 
}​ 
+0

charm처럼 작동 setStyle 메서드는 어디에 있습니까? – shay

+0

인라인 스타일이 추가되지 않은 경우 요소의 계산 된 스타일을 가져 오는 것입니다. 스타일을 설정하려면 인라인 스타일 속성을'element.style.width = "100px"'로 업데이트하거나 스타일 시트를 만들어 문서에 추가하십시오. 정확한 상황이 무엇인지는 확실치 않지만 관련있는 많은 답변이 있어야합니다. – user113716

+0

ok 새 예제는 어떤 이유로 setStyle 메서드 을 작성하는 데 도움을주었습니다. 메서드는 getElementById라는 아이디어를 전달하지 않을까요? 함수 setStyle (elementName, styleProp, styleValue) { \t 경고 ('여기에 설정'); var el = document.getElementById (elementName); 알림 (e1); if (el.currentStyle) { el.currentStyle [styleProp] = styleValue; } else if (window.getComputedStyle) { document.defaultView.getComputedStyle (el, null) .setProperty (styleProp, styleValue, 'important'); } else { \t 경고 ("할 일이 없습니다"); } } setStyle ('sidebar', 'width', '0px'); – shay