【问题标题】:Error: SyntaxError: DOM Exception 12 on Tag Creation Using jQuery错误:SyntaxError:使用 jQuery 创建标签时出现 DOM 异常 12
【发布时间】:2013-03-20 19:47:53
【问题描述】:

我有以下 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">

问题:为什么$('&lt;input/&gt;')$('&lt;input&gt;')会抛出上述异常,而$('&lt;li/&gt;')没有问题?

【问题讨论】:

    标签: javascript jquery dom syntax-error dtd


    【解决方案1】:

    确保在第一个示例中加载了 jQuery。

    即使您没有加载 jQuery,现在谷歌浏览器也将函数 $() 定义为类似于 querySelectorAll() 的东西。

    这个函数只接受一个 CSS 选择器作为参数,而不是像 jQuery 的 $() 这样的任意 HTML。

    来自文档:

    SYNTAX_ERR 代码 12 指定了无效或非法的字符串; 例如设置 CSSStyleRule 的 selectorText 属性 具有无效的 CSS 值。

    这个函数需要一个 CSS 选择器,而你给了它 HTML,所以它给出了一个语法错误。

    看看这个小提琴,它工作得很好:

    http://jsfiddle.net/S6d6w/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 1970-01-01
      • 2015-10-26
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多