0

私はjavascriptに関しては完全な初心者であり、別のdivを表示する単純なif/elseステートメントを作成しようとしています.

<script>
   if (window.FileReader && Modernizr.draganddrop){
      alert("Your browser supports drag and drop!!");
      document.getElementById(no).style.display = 'none';
   }else{
      alert("Sorry, browser does not support drag and drop!");
      document.getElementById(yes).style.display = 'none';
   }
</script>

そして、体内で

<div id="yes">Drag and drop yes</div>

<div id="no">Drag and drop no</div>

modernizr は問題なく動作しますが、スクリプトは両方の div を表示します

どんな助けでも大歓迎です

4

2 に答える 2

4

問題は、あなたが yes/no を宣言していないことがわかる限り、getElementById が文字列を期待していることです。

if (window.FileReader && Modernizr.draganddrop) {
    alert("Your browser supports drag and drop!!");
    document.getElementById('no').style.display = 'none';
} else {
    alert("Sorry, browser does not support drag and drop!");
    document.getElementById('yes').style.display = 'none';
}
于 2012-11-05T00:58:47.747 に答える
0

スクリプトは要素が存在する前に実行されます。loadページが完全にロードされた後にコードが実行されるように、イベントを使用します。

<script>
window.onload = function() {
   if (window.FileReader && Modernizr.draganddrop){
      alert("Your browser supports drag and drop!!");
      document.getElementById('no').style.display = 'none';
   }else{
      alert("Sorry, browser does not support drag and drop!");
      document.getElementById('yes').style.display = 'none';
   }
};
</script>

また、Evan が見つけたように、文字列 and ではなく and を使用しnoyes'no'ます'yes'

于 2012-11-05T00:59:15.263 に答える