3

我收到错误“错误:SYNTAX_ERR:DOM Exception 12”,代码如下:

var html = '<table><tr><td></td><td><input type="text" name="textArea" value="some text" /></td></tr></table>';
$(this.propertyContainer).html(html)

不适用于此代码:

$(this.propertyContainer).html('<table><tr><td></td><td><input type="text" name="textArea" value="some text" /></td></tr></table>')

这是propertyContainer的html:

<div xmlns="http://www.w3.org/1999/xhtml" class="property-grid" style="position: absolute; top: 35px; left: 0px;" id="ext-gen126"></div>

你有什么主意吗?

4

2 回答 2

2

我找到了。我忘记了输入标签末尾的字符“/”...

我想这是因为 dtd:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus SVG 1.1//EN"
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"
>

对不起……

于 2012-12-19T11:30:17.000 回答
1

这里没有错误:http: //jsfiddle.net/PA4Eg/

我猜可能的错误与上下文有关(的含义this)。

来源:

var obj = {
        propertyContainer: document.getElementById('ext-gen126')
    },
    html = '<table><tr><td></td><td><input type="text" name="textArea" value="some text" /></td></tr></table>';

$(obj.propertyContainer).html(html);
​

在下面的示例中,我的来源是相同的:

var obj = {
        propertyContainer: document.getElementById('ext-gen126')
    },
    html = '<table><tr><td></td><td><input type="text" name="textArea" value="some text" /></td></tr></table>';

setHtml.call(obj, html);

function setHtml(html) {
    $(this.propertyContainer).html(html);
}
​

我使用函数来设置给定 div 的 HTML 内容。对于这个函数,我obj用作上下文。它再次起作用。我希望你能通过将它与上面的代码进行比较来修复你的代码。

于 2012-12-19T11:13:14.083 回答