2014-12-03 33 views
0

我一直在嘗試創建一個textnode,它將展開和收縮onclick,但它拒絕在google chrome中工作,並在Firefox中顯示[object Text],我在哪裏出錯?創建textnode展開和隱藏

http://jsfiddle.net/jonSnow70/uf1bbk5q/

window.onload = function() 
document.getElementById("myBtn").addEventListener("click", 
textchange); 

function textchange() { 
    var status = "less"; 
    var text = document.createTextNode('Mmm ... something'); 


    if (status == "less") { 
     document.getElementById("textArea").innerHTML = text; 

     status = "more"; 
    } else if (status == "more") { 
     document.getElementById("textArea").innerHTML = ""; 

     status = "less" 
    } 
} 
+0

你的示例代碼和jsFiddle都有一個語法錯誤 - 在'onload()'函數週圍沒有'{'...'}'。 – 2014-12-03 21:18:27

+0

謝謝我從來沒有注意到 – 2014-12-03 21:41:29

回答

0

嗯,不知道爲什麼Chrome不喜歡.innerHTML =,但我試着用.appendChild()替換它和它的作品。試試這個:

var status = "less"; 
document.getElementById("myBtn").addEventListener("click", textchange); 

function textchange() { 
    var text = document.createTextNode('Mmm ... something'); 
    /* var text="<a href='index.php'>Index</a>"; 
    */ 
    if (status == "less") { 
     document.getElementById("textArea").innerHTML = ""; 
     document.getElementById("textArea").appendChild(text); 

     status = "more"; 
    } else if (status == "more") { 
     document.getElementById("textArea").innerHTML = ""; 

     status = "less" 
    } 

} 

順便說一句,宣佈外界var status="less"textchange()功能。這樣它將是全球性的,每次點擊#myBtn時都不會重置。

+0

改變一些東西,但它的工作原理,謝謝 – 2014-12-03 21:44:00