12
var $div = $('<div class="error">').appendTo($('#header'));

新しい要素を作成して DOM に追加するとき、終了タグは必要ですか? なぜ、またはなぜではないのですか?作成中のタグにコンテンツを配置する場合、終了タグのみが必要ですか? そのようです:

var $div = $('<div class="error"> Error-Homie! </div>').appendTo($('#header'));

または、コンテンツを含む要素を作成して、終了タグを省略できますか? 良い?悪い?

var $div = $('<div class="error">').appendTo($('#header'));
4

4 に答える 4

15

終了タグを使用しない場合 (または少なくとも自己終了タグ) で機能する場合もありますが、終了タグ (自己終了) を追加する必要があります(前述のように、クロスプラットフォームの互換性のために):

クロスプラットフォームの互換性を確保するには、スニペットの形式が適切である必要があります。他の要素を含むことができるタグは、終了タグと組み合わせる必要があります。

$('<a href="http://jquery.com"></a>');

あるいは、jQuery は XML のようなタグ構文を使用できます (スラッシュの前にスペースがあってもなくても):

$('<a/>');

要素を含むことができないタグは、クイック クローズされている場合とされていない場合があります。

$('<img />');
$('<input>');

これは、jQuery が要素を作成する方法です。

上記の例のように、HTML が属性のない単一のタグよりも複雑な場合、要素の実際の作成はブラウザのinnerHTMLメカニズムによって処理されます。ほとんどの場合、jQuery は新しい要素を作成し、要素のinnerHTMLプロパティを、渡された HTML スニペットに設定します。パラメータに$('<img />')またはなどの単一のタグがある場合$('<a></a>')、jQuery はネイティブ JavaScriptcreateElement()関数を使用して要素を作成します。


ところで。2 番目のパラメーターとしてデータを渡すこともできます。

$('<div />', {'class': 'error', text: 'Error-Homie!'})
于 2011-07-02T08:21:55.030 に答える
1

終了タグが必要です: http://api.jquery.com/appendTo/

$('<p>Test</p>').appendTo('.inner');

それもあるはずです

.appendTo('#header');

そしてそうではない

.appendTo($('#header'));
于 2011-07-02T08:20:03.893 に答える
0

あなたはおそらくこのようにすることができます

$('<div/>',{class:'error'}).html('Error-Homie!').appendTo($('#header'));
于 2011-07-02T08:20:54.220 に答える
0

適切な html を持つには、常に終了タグが必要です。

しかし、大多数のブラウザがそのような間違いを見逃しているのは事実です。ただし、怠惰になる必要はありませんが、コードが機能するためにブラウザーの許容範囲に依存するべきではありません。この許容範囲は、意図的に間違ったコードを警告するためではなく、いくつかの間違いがあるサイトを表示できるようにするためのものです。

于 2011-07-02T08:22:41.550 に答える