1

jQuery で HTML 要素を作成するにはさまざまな方法があることは知っていますが、次のいずれかを示している人を見てきました。

$("<div></div>", {attrs...})

また

$("<div/>", {attrs...})

そのための主要な方法として。

私はそれを見つけました

$("<div>", {attrs...})

もうまく動作します。

3 番目の方法を示す人がいないのはなぜですか? それに潜在的な問題はありますか?結果に関する限り、要素を調べて作成されたdivを確認すると、ほとんど同じように見えます。

4

4 に答える 4

3

のようなタグで html 要素を作成することは、html 要素を作成する$('<div>')方法$("<div>", {attrs...}) として文書化されています。ここで確認してください

パラメーターに単一のタグ (オプションの終了タグまたはクイック終了を含む) —$("<img />")または$("<img>")$( "<a></a>" )または$("<a>" )— がある場合、jQuery はネイティブ JavaScript の createElement() 関数を使用して要素を作成します。

于 2013-01-16T06:37:05.457 に答える
2

jQuery のソース コードを見てみましょう。

https://github.com/jquery/jquery/blob/master/src/core.js#L85

// Handle HTML strings
if (typeof selector === "string") {
  if (selector.charAt(0) === "<" && selector.charAt(selector.length - 1) === ">" && selector.length >= 3) {
    // Assume that strings that start and end with <> are HTML and skip the regex check
    match = [null, selector, null];
  }
  // ...
}

したがって、HTML と見なされるには、文字列が < で始まり > で終わる必要があります。このバリアントはすべて有効です。<div>最も人気がない理由は、有効な HTML ではない閉じられていないタグを人々に思い出させるためだと思います。ただし、jQuery はそれを受け入れます。

于 2013-01-16T06:38:34.933 に答える
1

を実行している場合$('<div>')、jQuery も を使用しますdocument.createElement()

( http://code.jquery.com/jquery-1.4.2.jsの 117 行目を見てください)。

関数呼び出しのオーバーヘッドはいくらかありますが、パフォーマンスが重要でない限り (数百 [数千] の要素を作成している場合)、プレーンな DOM に戻す理由はあまりありません。

新しい Web ページの要素を作成するだけの場合は、おそらく jQuery のやり方に固執するのが最善でしょう。

于 2013-01-16T06:44:13.290 に答える
0

jQueryのドキュメントに従って: クロスプラットフォームの互換性を確保するには、スニペットは適切な形式である必要があります。他の要素を含むことができるタグは、終了タグとペアにする必要があります。

$( "<div></div>" ); 

ただし、要素を含めることができないタグは、次のようにクイッククローズされるか、そうでない場合があります。

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

ただし<div></div>一部のブラウザーでは機能する可能性がありますが、結果はブラウザーごとに異なる場合があり、同じブラウザーの異なるバージョン間でも異なる場合があります.安全のために、常に標準とドキュメントのベストプラクティスに固執してください.

于 2013-01-16T06:43:36.077 に答える