2013-03-30 3 views
8

を使用してタグの作成上のDOM例外12私は次のJavaScriptを持っている:エラー:にSyntaxError:jQueryの

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

上記のjavascriptは、次のエラーメッセージがスローされます。

Error: SyntaxError: DOM Exception 12 

この1つはエラーなしで動作します。

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知っている正しい理由WHY。ここで

は私のDTDです:

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

質問$('<li/>')は問題ではありませんしながら、なぜ$('<input/>')$('<input>')は言っ例外をスローしますか?

答えて

9

最初の例でjQueryがロードされていることを確認してください。

jQueryがロードされていない場合でも、という関数は、Google Chromeによって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/