2013-11-26 52 views
-2

JavaScript代碼的最後一行列出了我一個InvalidCharacterError,我想不通爲什麼:的Javascript給`invalidcharactererror`

var iCounter=0; 
var calendarText = document.createElement("input"); 
calendarText.setAttribute("SetAttribute(" + iCounter + ")", "onkeyup"); 

誰能告訴爲什麼?

+0

DO NOT使用SETATTRIBUTE添加事件。 https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener – epascarello

回答

3

屬性名稱不能包含()。您可以將其更改爲

calendarText.setAttribute("SetAttribute_" + iCounter, "onkeyup"); 

如果使用自定義屬性,請考慮使用data-* attributes

如果你只是通過在錯誤的順序的參數,我只能建議總是read the documentation第一:

element.setAttribute(name, value);

但在這種情況下,你應該learn about the better ways to attach event handlers。例如。一個稍微好一點的辦法是

calendarText.onkeyup = function() { 
    SetAttribute(i); 
}; 
2

它應該是

var iCounter=0; 
var calendarText = document.createElement("input"); 
calendarText.setAttribute("onkeyup", "SetAttribute(" + iCounter + ")"); 

的setAttribute方法的第二個參數是該屬性的值(其是第一個)

elementNode.setAttribute(name,value) 
+0

抓住了參數順序! –