這是一個關於javascript編譯(我認爲)以及如何將文本附加到HTML文檔的問題。如何將HTML文檔中的列表項作爲列表項交互添加到列表中而不將列表項存儲爲JavaScript變量?
我正在關注一個示例here,因爲我想交互式添加元素到文檔列表中。
我的HTML文件中包含一個列表:
<ul id="sList"> </ul>
如果我寫的JavaScript這樣的:
var textnode = document.createTextNode(s);
var node = document.createElement("li");
node.appendChild(textnode);
document.getElementById("sList").appendChild(node);
每一個字符串(變量s各持有)被附加到一個列表該文件。
我天真地認爲我可以寫在較少的行。
var node = document.createElement("li");
node.appendChild(document.createTextNode(s));
document.getElementById("sList").appendChild(node);
作品如預期,追加每個s的列表作爲列表項,但每個未能正確顯示爲一個列表項,如果我嘗試通過不存儲所創建的「禮」爲進一步減少代碼變量。例如,該腳本附加標記之間,但沒有列表項文字:
var textnode = document.createTextNode(s)
var node = (document.createElement("li")).appendChild(textnode)
document.getElementById("sList").appendChild(node)
同樣,我的第一次嘗試是這樣的一行代碼:
document.getElementById("sList").appendChild(document.createElement("li").appendChild(document.createTextNode(s)))
也追加<ul>
標籤,但沒有內文作爲列表項目。
所以我只是想知道如何編譯器解釋一個文本節點的appendChild調用到尚未創建的document.createElement,以及是否有可能將項目附加到列表而不先將它們存儲爲變量。這個問題出於好奇,雖然我認爲它也會更好地理解DOM,以及如何用更少的JavaScript做更多。
非常感謝您的幫助!一個問題,你上面的'list'變量是什麼?它是否有效'var list = document.getElementbyId(「sList」)'? – jwco
@jwco:是的,無論你有什麼參考你的名單。 –