當試圖通過由document.createElement
方法創建的元件,現在遇到不尋常的結果:作爲參數傳遞時,document.createElement的行爲是什麼?
var Todo = (function() {
return {
items: [],
addItem: function() {
var task = document
.querySelector('#top-todo')
.value
.trim()
if (task !== '') {
this.items.push({ task, complete: false })
document.querySelector('#top-todo').value = ''
console.log('Added item: ' + task)
var newTodo = document.createElement('li')
.appendChild(document.createElement('p'))
.appendChild(document.createTextNode(task))
document.querySelector('#todo-list').appendChild(newTodo)
}
}
}
})()
<div>
<ul id="todo-list">
<li>
<input id="top-todo" placeholder="I need to..." type="text" />
</li>
</ul>
<input onclick="Todo.addItem()" type="button" value="add" />
</div>
而不是完全失效或類型錯誤,我們看到僅textNode元件附加到#todo-list
元件。這種行爲的原因是什麼?有沒有一種有效的方法來使用該方法作爲參數來追加或插入?
@charlietfl我不確定你的意思。 –
不要將DOM API視爲流暢/可鏈接。它們的設計不是可鏈接的。如果你想鏈接使用jQuery – slebetman