解決しようとしている実際の問題を説明するコメントで提供された情報を考えると、body
タグの属性を取得する必要はまったくなく、文字列検索を使用する必要もありません。ただ行う:
var $newContent = $('<div>' + data + '</div>').children();
$(document.body).empty().append($newContent);
つまり、データ全体を解析します。$(data)
次に、すべての子ノードを取得し、それらを既存の に配置しますdocument.body
。
<div> + data + </div>
は$(html)
単一の要素 (および子) を必要とし、標準の HTML ボイラープレートの を受け入れないため、が必要です<!DOCTYPE ...><html>...</html>
。また、タグ<head>
と<body>
タグを取り除き、子だけを残すように見えます。私が作ったばかりのテストでは、与えられた
var data = '<!doctype html><html><head></head><body><span>Test</span>' +
'<span>Test 2</span></body></html>'
それから
$('<div>' + data + '</div>').children()
2 つの<span>
要素、つまりデータの<body>
タグの目的のコンテンツのみを指定します。
編集OK -とタグが削除され、 の元の内容がそのまま残っているため、期待どおりに機能しないようです。<head>
<body>
<head>
代わりに、これを試してみてください。これは、元のテクニックとこれを組み合わせたものです。
var $newContent = $(data.substring(data.indexOf('<body')));
$(document.body).empty().append($newContent);