2011-12-06 18 views
0

私は現時点で3つのdivで作業しています。デフォルトではpageLoadが表示されますが、ユーザーがボタンをクリックするとdivが非表示になり、選択したdivがその場所に表示されます。現在表示されているdivのIDを確認

ユーザーが現在選択しているdivを識別するifステートメントを作成するにはどうすればよいですか?例:

if selected_div is 'dpara' then .... 

else if selected_div is dtab then .... 

ありがとうございます!

<script type='text/javascript'> 
     function arrange(div_id) { 
      // First make all the divs hidden... 
      divs = document.getElementsByTagName('div'); 
      for(var i = 0; i < divs.length; i++) { 
       divs[i].style.display = 'none'; 
      } 

      // Now make the one we want to be visible visible... 
      document.getElementById(div_id).style.display = 'block'; 
     } 
    </script> 
    <form> 
     <input type='button' value='dpara' onclick='arrange(this.value);' /> 
     <input type='button' value='dtab' onclick='arrange(this.value);' /> 
     <input type='button' value='ddl' onclick='arrange(this.value);' /> 
    </form> 
    <div id='dpara'> 
    </div> 

    <div id='dtab' style='display: none'> 
    </div> 

    <div id='ddl' style='display: none'> 
    </div> 

答えて

1

あなたはすでにあなただけのようなもの、変数に見えるdivを保つことができるクリックし、各ボタンの機能を経由していたよう:

var visibleDiv; 

function arrange(divId) { 
    // Cache the passed in 'div' as the currently visible one 
    visibleDiv = document.getElementById(divId); 

    // First make all the divs hidden... 
    var divs = document.getElementsByTagName('div'), 
     i, 
     len; 

    for (i = 0, len = divs.length; i < len; i++) { 
     divs[i].style.display = 'none'; 
    } 

    // Now make the one we want to be visible visible... 
    visibleDiv.style.display = 'block'; 
} 
0

これは、ブラウザ間でこれを行うのに役立つJSライブラリを実装することをお勧めします。例えば、jQueryのは、ここで説明したように見えるかを決定することができます...

http://api.jquery.com/visible-selector/

+0

あなたは、私が使用できる任意の純粋なJavaScriptの例を持っています。私はJavaScriptが初めてです。 – methuselah

+0

jakeclarksonの例は、 'display:none'を使ってdivを非表示にしている限り、賢明に見えます。あなたのコードも 'visibility:hidden'を使っているならば、それをコード化しなければなりません。[CSS display vs Visibiltiy](http://www.w3schools.com/css/css_display_visibility.asp)。私はまだJQueryを使用することをお勧めします;) – Brad

0

起動時にdiv Sを特定し、それらに新しい機能を割り当てる:

$('#dpara')[0].myFunc = function() { ... } 
$('#dtab')[0].myFunc = function() { ... } 

今、あなたは

することができます
selected_div.myFunc(); 

選択したdivを見つける方法は?

$('div:visible')[0].myFunc(); 

PS:[0]はjQueryのリストからDOM要素を取得します:visibleセレクタを使用してください。

+0

jQueryを使用せずにこれを達成する方法はありますか? – methuselah

+0

標準JSメソッドを使用して、DOM要素をIDで特定してください。最後の部分では、3つのdivすべてにループが必要です(配列に保存することもできます)。または選択したdivをグローバル変数に保存すると、そのdivに切り替えられます。 –

関連する問題