2011
Dec
17
CSS 寫入 html 的值,用Javascript 卻沒辦法取得,這麼簡單的問題,我卻一直都沒發現,真是改用Jquery 後,實在是太方便,基礎越來越差了。
假設我們先用CSS指定div的寬 ,範例如下。
- <style>
- .data{
- width:200px;
- }
- </style>
- <div class="data" id="data">test</div>
用JS抓div的寬 ,這樣寫的話,就會抓到空值。
- var s=document.getElementById('data');
- alert( s.style.width );
解決方式1: 將div需要的 css 用 inline 的方式寫入,這樣就能用 Javascript 抓到
- <div style="width:100px;"></div>
解決方式2:抓 getComputedStyle 的值
- function getStyleAttr(attr){
- var em = document.getElementById('data');
- var defaultView = em.ownerDocument.defaultView;
- if (defaultView ) {
- var computedStyle = defaultView.getComputedStyle(em, null );
- if (computedStyle ) {
- return computedStyle.getPropertyValue(attr);
- }
- }
- else if(em.currentStyle){
- return em.currentStyle[attr];
- }
- }
回應 (Leave a comment)