nme*_*ego 10 javascript jquery dom dtd syntax-error
我有以下javascript:
var orderItemQuantity = $('<input/>', {
type: 'hidden',
name: 'order_detail[][quantity]',
value: itemQuantity
});
Run Code Online (Sandbox Code Playgroud)
上面的javascript引发以下错误消息:
Error: SyntaxError: DOM Exception 12
Run Code Online (Sandbox Code Playgroud)
这个工作没有错误:
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
});
Run Code Online (Sandbox Code Playgroud)
我检查了以下问题,但答案没有明确说明正确的原因为什么.
这是我的DTD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)
问题:为什么$('<input/>')并且$('<input>')抛出所述异常而$('<li/>')不是问题?
Hei*_* Yu 11
确保在第一个示例中加载了jQuery.
即使您没有加载jQuery,该功能$()现在也被谷歌Chrome定义为类似的东西querySelectorAll().
这个函数只接受一个CSS选择器作为参数,而不是像jQuery那样的任意HTML $().
来自文档:
SYNTAX_ERR代码12指定了无效或非法字符串; 例如,使用无效的CSS值设置CSSStyleRule的selectorText属性.
该函数期待一个CSS选择器,你给它HTML,所以它给出了语法错误.
看到这个小提琴,它运作得很好: