2010-11-13 73 views
-1

這是我的腳本:的Javascript切換問題

window.onload = function(){ 
    var title = document.getElementsByTagName('h1')[0].id = "heading1"; 
    document.getElementById(title).onclick = function (e){ 
      var para = this.nextSibling.style.display = 'block'; 
      var newVal = (para == "block") ? "none" : "block"; 
      alert(newVal); 
    } 
} 

結果我需要的是警戒值切換從塊沒有和背部。但我總是得到「沒有」。我的代碼有什麼問題?

回答

3
window.onload = function() { 
    var firstH1 = document.getElementsByTagName('h1')[0]; 
    firstH1.id = "heading1"; 
    firstH1.onclick = function() { 
    var currentValue = this.nextSibling.style.display; 
    this.nextSibling.style.display = (currentValue == "none") ? "block" : "none"; 
    } 
} 

注意幾件事情:我簡化你的元素提取,因爲它沒有任何意義獲取一個元素,它分配一個ID,然後使用該ID再次找到相同的元素。

我也切換了塊/無順序,因爲如果沒有顯示任何樣式,那麼它將是空白的 - 並且您的第一次點擊會將塊分配給它 - 並且它不會消失。這樣做。

+0

非常感謝。它工作正常。 – 3gwebtrain 2010-11-13 13:20:16

+0

它工作正常。但我現在還有另一個問題。實際上在我的代碼中,我提到nextSibling是段落標記。它應該需要顯示和隱藏。但它不能與Internet Explorer一起工作,因爲它將數字作爲字符來計算空白空間。 – 3gwebtrain 2010-11-13 14:20:11

+0

如何忽略Internet Explorer的空白區域? – 3gwebtrain 2010-11-13 14:20:38

2

那麼,para將永遠是「block」,因此newVal將永遠是「none」。所以預期這種行爲。你想做什麼?你不用你的醫療代碼來切換房產。

+0

(與Doug重疊......假設你想切換,他的代碼將起作用) – rob 2010-11-13 06:26:43

+0

Woo!我終於被允許發表評論。是的,問題在於,當您試圖將值存儲在較短的變量名中以提高可讀性時,您可能正在分配一個值。 – 2010-11-13 06:28:31