2013-03-30 43 views
8

我有以下的javascript:錯誤:語法錯誤:在標籤創建DOM異常12使用jQuery

var orderItemQuantity = $('<input/>', { 
    type: 'hidden', 
    name: 'order_detail[][quantity]', 
    value: itemQuantity 
}); 

以上的JavaScript引發以下錯誤消息:

Error: SyntaxError: DOM Exception 12 

這一個工作而不會錯誤:

var newListItem = $('<li/>', { 
    html: 
    $('#item_name_'+itemId).text() + 
    '(' + $('#item_quantity_' + itemId).val() +')' + 
    '<a onclick="removeItem(' + itemId + ')">Delete this</a>' + 
    '<input type="hidden" name="order_detail[][item_id]" value="' + itemId + '"/>', 
    id: itemId 
}); 

我檢查了以下question但答案沒有指定c學習正確的原因爲什麼。

這是我DTD:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

問題:爲什麼$('<input/>')$('<input>')拋出異常說,而$('<li/>')是不是有問題?

回答

9

請確保您的第一個示例中已加載jQuery。

即使您沒有加載jQuery,功能$()現在由谷歌瀏覽器定義爲與querySelectorAll()類似的東西。

該函數只接受一個CSS選擇器作爲參數,而不是像jQuery的$()這樣的任意HTML。

從文檔:

SYNTAX_ERR code 12 In invalid or illegal string has been specified; for example setting the selectorText property of a CSSStyleRule with an invalid CSS value.

的函數需要一個CSS選擇器,你給它的HTML所以它給了一個語法錯誤。

看到這個小提琴,它工作得很好:

http://jsfiddle.net/S6d6w/