2

jQuery を使用して実際の DOM ノードを作成できますが、それは DOM 内にはありません。では、jQuery はどのようにそれを行うのでしょうか? 最初にDOMで作成してから削除する可能性があると思います。

// here `el` is not a jQuery object
el = $('<div></div>')[0];


console.log(el.tagName);  // "DIV"
console.log(el.nodeType); // "1"
4

5 に答える 5

3

document.createElement()指定された要素を作成するためにjQueryを使用していると思います。このメソッドはノードを作成して返しますが、DOM にはアタッチしません。仕組みの詳細については、関連するMDN の記事を参照してください。

于 2013-09-22T07:59:59.253 に答える
0

Jquery は、正規表現を使用して HTML 文字列を解析し、以下のコードを使用して dom 要素を作成します。

parseHTML: function( data, context, keepScripts ) {
    if ( !data || typeof data !== "string" ) {
        return null;
    }
    if ( typeof context === "boolean" ) {
        keepScripts = context;
        context = false;
    }
    context = context || document;

    var parsed = rsingleTag.exec( data ),
        scripts = !keepScripts && [];

    // Single tag
    if ( parsed ) {
        return [ context.createElement( parsed[1] ) ];
    }

    parsed = jQuery.buildFragment( [ data ], context, scripts );
    if ( scripts ) {
        jQuery( scripts ).remove();
    }
    return jQuery.merge( [], parsed.childNodes );
}

このページでコードを調べる方が簡単かもしれません。

http://james.padolsey.com/jquery/#v=1.10.2&fn=jQuery.parseHTML

于 2013-09-22T08:36:16.330 に答える