3

次のコードでエラー「エラー:SYNTAX_ERR:DOM例外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 に答える