자바 스크립트를 통해 만든 노드의 속성을 설정해야합니다. 그러나 스크립트를 통해 값이 다른 기능에 위치하기 때문에 매우 복잡해지고 있습니다.동적으로 생성 된 노드에 사용자 정의 속성 추가 javacript
function createNewTodo(todoItem) {
var li = document.createElement("li");
li.setAttribute("id", todoItem.id);
var spanTodo = document.createElement("span");
spanTodo.innerHTML =
todoItem.who + " needs to " + todoItem.task + " by " + todoItem.dueDate;
li.appendChild(spanTodo);
return li;
}
그런 다음 내가 누구를 설정하는 데 사용하는 페이지의 폼에서 값을 가져 :
function Todo(id, task, who, dueDate) {
this.id = id;
this.task = task;
this.who = who;
this.dueDate = dueDate;
this.done = false;
}
그럼 내가 왜 그렇게를 개최 스팬 요소를 만듭니다
나는 생성자 함수가 , 그리고 작업. 그리고 날짜,하지만 그것은 나중에 오늘 코드와 날짜의 차이를 얻기 위해 나중에 코드에서 그 값을 사용하게되면서 좀 더 복잡해집니다.
function getFormData() {
var task = document.getElementById("task").value;
if (checkInputText(task, "Please enter a task")) return;
var who = document.getElementById("who").value;
if (checkInputText(who, "Please enter a person to do the task")) return;
var adate = document.getElementById("dueDate").value;
var reString = new RegExp("[0-9]{4}\\-\[0-9]{2}\\-\[0-9]{2}");
var date = compareDates(date);
var id = (new Date()).getTime();
var todoItem = new Todo(id, task, who, date);
todos.push(todoItem);
addTodoToPage(todoItem);
saveTodoItem(todoItem);
}
그래서 여기에 원하는 값이 있습니다. 나는 그 값을 createNewToDo 함수의 innerHTML에서 사용할 수 있도록 dueDate를 같은 날로 설정하려고합니다.
function compareDates(date) {
var days = Math.floor(daysCal);
console.log(date);
todoItem.setAttribute("dueDate", days);
if (cdate < date) {
console.log("you have" + " " + days + " " + "more day(s)");
}
else if (cdate > date) {
console.log("you are" + " " + -days + " " + "day(s) overdue");
}
}
수정일을 기준으로 dueDate를 일 단위로 설정 하시겠습니까?