2016-07-06 10 views
0

divdisplayスタイル属性を確認する必要があります。下の文書では、両方のdivの 'display属性は、ボタンをクリックしたときにCSSで設定します(none、もう1つはblock)。div.style.displayはスクリプトで設定されていない限り空です正しい値を得るために、ボタンを2回クリックする必要があります)。'display'スタイル属性が正しくありません

function myFunction() { 
 
    document.getElementById("dispa").innerHTML = document.getElementById("mydiva").style.display; 
 
    document.getElementById("mydiva").style.display = "none"; 
 
    document.getElementById("dispb").innerHTML = document.getElementById("mydivb").style.display; 
 
    document.getElementById("mydivb").style.display = "none"; 
 
}
 #mydiva { 
 
     display:block; 
 
     } 
 
     #mydivb { 
 
     display:none; 
 
     }
<button onclick="myFunction()" id="b">See</button> 
 
<p id="dispa">display</p> 
 
<div id="mydiva"> 
 
    sample div a 
 
</div> 
 
<p id="dispb">display</p> 
 
<div id="mydivb"> 
 
    sample div b 
 
</div>

注:私のプロジェクトでは、displayの読み取りがないボタンを押して、window.onloadに起こることですが、結果は同じです。

+0

理由だけでアクティブ、CSSのホバーでそれを行うとフォーカスではありませんか? –

+0

'getComputedStyle()'を使用 –

+0

@ MarcosPrezGudeそれがうまくいった!本当にありがとう! –

答えて

0

は、あなたは下の関数を使ってdisplayスタイルを取得することができます

function myFunction() { 
 
    document.getElementById("dispa").innerHTML = getDisplayStyle("mydiva"); 
 
    document.getElementById("mydiva").style.display = "none"; 
 
    document.getElementById("dispb").innerHTML = getDisplayStyle("mydivb"); 
 
    document.getElementById("mydivb").style.display = "none"; 
 
} 
 

 
function getDisplayStyle(elementId) { 
 
    var element = document.getElementById(elementId) 
 
    return element.currentStyle ? element.currentStyle.display : 
 
    getComputedStyle(element, null).display; 
 
}
#mydiva { 
 
    display: block; 
 
} 
 
#mydivb { 
 
    display: none; 
 
}
<button onclick="myFunction()" id="b">See</button> 
 
<p id="dispa">display</p> 
 
<div id="mydiva"> 
 
    sample div a 
 
</div> 
 
<p id="dispb">display</p> 
 
<div id="mydivb"> 
 
    sample div b 
 
</div>

0
<p id="dispa">display</p> 
<div id="mydiva" style="display:none;"> 
    sample div a 
</div> 
<p id="dispb">display</p> 
<div id="mydivb"> 
    sample div b 
</div> 




<script> 
$(document).ready(function(){ 
    $("#b").click(function(){ 
     $("#mydiva").toggle(); 
     $("#mydivb").toggle(); 
    }); 
}); 
</script> 

これはあなたのやりたいことですか?

+0

しかし、jQueryを使用しないで(これは '$'のものです、そうですか? –

関連する問題