1. ホーム
  2. javascript

[解決済み] 大きなHTML文字列からjQueryオブジェクトを作成する

2022-02-11 03:13:08

質問

複数の子ノードを含む大きなHTML-Stringがあります。

を構築することは可能でしょうか? jQuery この文字列を使ったDOMオブジェクトは?

試してみたところ $(string) が、個々のノードをすべて含む配列が返されるだけです。

.find()関数を使用できるような要素を取得しようとしています。

解決方法は?

アップデートしてください。

jQuery 1.8からは $.parseHTML これは HTML 文字列をパースして DOM ノードの配列にします。

var dom_nodes = $($.parseHTML('<div><input type="text" value="val" /></div>'));

alert( dom_nodes.find('input').val() );

DEMO


var string = '<div><input type="text" value="val" /></div>';

$('<div/>').html(string).contents();

DEMO

このコードで何が起こっているのか

  • $('<div/>') は偽物です <div> DOM に存在しない
  • $('<div/>').html(string) を追加します。 string その偽物の中に <div> 子供として
  • .contents() そのフェイクの子プロセスを取得します。 <div> をjQueryオブジェクトとして作成します。

を作りたい場合 .find() が動作するようにするには、次のようにします。

var string = '<div><input type="text" value="val" /></div>',
    object = $('<div/>').html(string).contents();

alert( object.find('input').val() );

DEMO