2016-01-06 42 views
-3

我有第15行的語法錯誤,我不知道爲什麼。語法錯誤在JS函數中,它不起作用

另外,還有其他方法可以調用函數嗎?點擊添加此事件,但我認爲這是不正確的。我想我需要使用return或其他東西,或者編寫一個函數來調用它。

var toDolist = function() { 
 
    
 
    addNewTask = function() { 
 
     
 
     var btn2 = document.getElementById("add-task-box"); 
 
     btn2.onclick = addNewTask 
 
     
 
     
 
     var input = document.getElementById("taks-input").value, 
 
      itemTexts = input, 
 
      colA = document.getElementById('task-col-a').children.length, 
 
      colB = document.getElementById('task-col-b').children.length, 
 
      taskBoks = document.createElement("div"), 
 
      
 
      taskBoks.className = "min-box", 
 
      taskBoks.innerHTML = '<div class="col-3 chack" id=""><i class="fa fa-star"></i></div><div class="col-8 task-text" id="taskContent">/ 
 
      <p>'+itemTexts+'</p></div><div class="col-1 color"></div>' 
 
      
 
      if (colB > colA) { 
 
       var todolist = document.getElementById("task-col-a"); 
 
      } else { 
 
       var todolist = document.getElementById("task-col-b"); 
 
      } 
 
       todolist.appendChild(taskBoks); 
 
      } 
 
     } 
 
    } 
 
}

+1

你有逗號應該有分號,例如在聲明'taskBoks'後,當然在設置'className'後等。 – adeneo

+0

第一步:正確地縮進你的代碼。它使得更容易發現錯誤。第二:在聲明'taskBoks'後你有一個逗號。對於此代碼的目的,您只能使用逗號分隔新的變量聲明。 'taskBoks.className =「min-box」'沒有向前面的語句聲明一個新的變量應該以分號結尾。 –

+0

弗拉基米爾:一個問題是,它似乎你試圖逃避你的字符串中的換行符,但使用/而不是\。 – 2016-01-06 16:19:49

回答

0

你宣佈一個數的序列變量,使用,宣佈他們都在一個單一的var聲明。但是,如下所示,您試圖聲明taskBoks.className,它不是變量名稱,而是指對象(taskBoks)的對象屬性(className)。

// Declare variables, one after another... 
var input = document.getElementById("taks-input").value, 
    itemTexts = input, 
    colA = document.getElementById('task-col-a').children.length, 
    colB = document.getElementById('task-col-b').children.length, 
    taskBoks = document.createElement("div"), 

    // Since previous line ends in comma, this is another declaration... 
    taskBoks.className = "min-box", 
    // Syntax Error: variable names can't contain a dot. 

你可能只需要在taskBoks聲明的末尾改變逗號是一個分號,以結束var聲明。

此外,您需要將taskBoks.className行末尾的逗號更改爲分號。 並重復以下行,taskBoks.innerHTML,或者當您達到該點時,您將獲得另一個拋出的異常。

而且你必須在taskBoks.innerHTML分配,它可能不會在所有發動機工作,可能是語法錯誤多線串...

而且你想分配btn2「 s的點擊處理函數,從該函數內部...可能屬於toDolist而不是(?)或其他地方。

換句話說,您在這裏有許多其他問題,但逗號是問題所提及的具體錯誤的原因。你應該把這種情況分成幾個單獨的問題來解決你遇到的具體錯誤,而不是把整個blob分成一個問題,並問「爲什麼我的代碼被破壞?」

+0

謝謝你這是非常有用的,但我不明白爲什麼我的代碼仍然不工作 – Vladimirs

+0

@Vladimirs正如你所看到的,你的問題已被擱置爲脫離主題。我建議您查看暫停通知中提供的幫助中心鏈接,並找出要詢問的更具體的問題。 「我的代碼不工作」通常不會得到很好的答案 - 發佈代碼和一個特定的錯誤將會。請注意,我解釋了爲什麼會出現此語法錯誤,但是爲什麼您的代碼無法正常工作的更廣泛問題需要縮小範圍。我建議發佈具有特定問題和錯誤消息的另一個問題。 –

+0

非常感謝你!有美好的一天! – Vladimirs