10

我有以下 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
});

我检查了以下问题,但答案没有明确说明正确的原因 WHY。

这是我的DTD:

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

问题:为什么在没有问题$('<input/>')$('<input>')情况下会抛出上述异常$('<li/>')

4

1 回答 1

11

确保在第一个示例中加载了 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.

The function is expecting a CSS selector and you gave it HTML so it gave a syntax error.

See this fiddle, it works just fine:

http://jsfiddle.net/S6d6w/

于 2013-03-30T03:50:35.263 回答