我有以下javascript:
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,但答案没有明确指出正确的原因为什么。
这是我的DTD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
问题:为什么$('<input/>')
和$('<input>')
在$('<li/>')
不成问题时抛出所述异常?
答案 0 :(得分:11)
确保在第一个示例中加载了jQuery。
即使您没有加载jQuery,Google Chrome现在将函数$()
定义为与querySelectorAll()
类似的内容。
此函数仅接受CSS选择器作为参数,而不是像jQuery $()
那样的任意HTML。
来自文档:
SYNTAX_ERR代码12指定了无效或非法字符串; 例如,设置CSSStyleRule的selectorText属性 CSS值无效。
该函数期待一个CSS选择器,你给它HTML,所以它给出了语法错误。
看到这个小提琴,它运作得很好: