append: function() {
//引数オブジェクトを渡します。true はテーブルの特別な処理を意味します。コールバック関数
return this.domManip(arguments, true, function(elem){
if (this.nodeType == 1)
this.appendChild( elem )
});
},
domManip: function( args, table, callback ) {
if ( this[0] ) {// 要素ノードがある場合
var flagment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
// 3 つあることに注意してください。ここでパラメータ
scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), flagment ),
first = flagment.firstChild; if ( first )
for ( var i = 0, l = this.length; i
callback.call( root(this[i], first), this.length > 1 || i > 0 ? フラグメント.cloneNode(true) : フラグメント ); if ( scripts ) jQuery.each( scripts, evalScript );これを返す ; 関数 root( elem, cur ) { テーブルを返す && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? .getElementsByTagName ("tbody")[0] || elem.appendChild(elem.ownerDocument.createElement("tbody")) : elem; } } // elems は引数オブジェクト、context はドキュメント オブジェクト、fragment は空のドキュメント フラグメントです。 !context.createElement は IE でエラーで失敗しますが、typeof 'object' を返します if ( typeof context.createElement === "unknown" ) //コンテキストがドキュメント オブジェクトであることを確認してください context = context .ownerDocument || context[ 0] && context[0].ownerDocument // 単一の文字列が渡され、それが単一のタグである場合 // createElement を実行してスキップします。残りの部分 / / など、ドキュメント オブジェクト内にタグが 1 つだけある場合
// 外部からこのように呼び出すことができます $(this).append("
" )
//この時は中の要素名を直接取り出してdocument.createElement("div")で作成して配列に入れて
を返します if ( !fragment && elems.length == = 1 && typeof elems[0] === "string " ) {
var match = /^$/.exec(elems[0]);
if ( match )
return [ context.createElement( match [1] ) ];
}
// div の innerHTML を使用してノードを作成します
var ret = [], scripts = [] , div = context.createElement("div");
// $(this).append("
Table 1 ", "
Table 1 表 1< ;/td>")
//jQuery.each は 4 番目の分岐メソッド (パラメーターなし、長さ) に従ってエージェント オブジェクトを走査します。callback.call( value, i, value )
jQuery.each (elems, function(i, elem){//i はインデックス、elem は引数オブジェクトの要素です
if ( typeof elem === "number" )
elem = '';
if ( !elem )
return;
// HTML 文字列を DOM ノードに変換します
if ( typeof elem === "string" ) {
// すべてのブラウザの「XHTML」スタイル タグを修正
elem = elem.replace(/(<(w )[^>]*?)/>/g, function(all,front, tag){
タグを返します。 match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
});
// Trim whitespace, otherwise indexOf won't work as expected
var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase();
var wrap =
// option or optgroup
!tags.indexOf("
[ 1, "", " " ] || !tags.indexOf(" [ 1, "", " " ] || tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && [ 1, "" ] || !tags.indexOf(" [ 2, "" ] || // matched above (!tags.indexOf(" [ 3, "" ] || !tags.indexOf(" [ 2, "" ] || // IE can't serialize and