2011-12-06 26 views
0

我正在使用3個分區 - 此頁面上默認值已被查看,但是當用戶單擊某個按鈕時,div被隱藏,選定的div將出現在它的位置。識別當前可見分區的編號

我該如何編寫if語句來標識用戶當前選擇的div?例如:

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 libarry,它可以幫助你在不同的瀏覽器上做到這一點。例如JQuery的能確定這裏描述的是可見......

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

+0

你有什麼純粹的JavaScript的例子,我可以使用。我是JavaScript新手。 – methuselah

+0

只要你只用'display:none'來隱藏你的div,jakeclarkson的例子看起來很明智。如果你的代碼也使用'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?使用:visible選擇:

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

PS:本[0]得到從jQuery列表中的DOM元素。

+0

有沒有什麼方法可以在不使用jQuery的情況下實現這一點? – methuselah

+0

當然。只需使用標準JS方法按ID定位DOM元素。對於最後一部分,您需要對所有三個div進行循環(也許將其保存在數組中),或者在切換到全局變量時將所選div保存在全局變量中。 –