2013-03-10 8 views
0

자바 스크립트를 통해 만든 노드의 속성을 설정해야합니다. 그러나 스크립트를 통해 값이 다른 기능에 위치하기 때문에 매우 복잡해지고 있습니다.동적으로 생성 된 노드에 사용자 정의 속성 추가 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를 일 단위로 설정 하시겠습니까?

답변

0

todoItemTodo 생성자하지 li 또는 spanTodo 같은 DOM 노드에 의해 생성 된 JS 객체이다. 따라서 더 setAttribute 방법이 없습니다, 당신은 그것의 속성을 설정하려면 단지 (A member operator 사용)이 할당 :

todoItem.dueDate = daysL 
관련 문제