在我的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>代替。

09-25 16:19