在我的if
/ else
语句中,而不是:
todoTextWithCompletion = '(x) ' + todo.todoText;
我想在DOM中显示删除字符串(
todo.todoText input
)。我尝试将其替换为todoTextWithCompletion = todo.todoText.strike();
但是它在DOM中显示
<strike>todo.todoText</strike>
。displayTodos: function () {
var todosUl = document.querySelector('ul');
todosUl.innerHTML = '';
todoList.todos.forEach(function (todo, position) {
var todoLi = document.createElement('li');
var todoTextWithCompletion = '';
if (todo.completed === true) {
todoTextWithCompletion = '(x) ' + todo.todoText;
} else {
todoTextWithCompletion = '( ) ' + todo.todoText;
}
todoLi.id = position;
todoLi.textContent = todoTextWithCompletion;
todoLi.appendChild(this.createToggleButton());
todoLi.appendChild(this.createDeleteButton());
todosUl.appendChild(todoLi);
}, this);
},
最佳答案
您还可以使用JavaScript设置文本内容的样式。
假设todoLi
是要删除的元素:
todoLi.style.textDecoration = "line-through";
使用新的CSS Typed Object Model,它将是:
todoLi.attributeStyleMap.set('text-decoration', 'line-through');
两者的效果都与使用CSS应用
text-decoration: line-through;
属性的效果相同。另外请记住,HTML5不支持
<strike>
标记。使用
<del>
或<s>
代替。