2017-12-05 3 views
2

データという変数に格納されている一部のHTMLフラグメントを返す関数があります。私が望むのは、それらの部分のいくつかを抽出することです。HTMLテキストの特定の部分を選択

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Title</title> 
    <script id="hello"> 

    </script> 
</head> 
<body> 

</body> 
</html> 

は例えば、私は体を取得し、新しい変数に保存したい:データ本来の機能が戻っていることを文字列としてHTMLテキストがある

var body = data.split("<body")[1].split(">").slice(1).join(">").split("</body>")[0]; 

特定のスクリプトをID(この場合はid = hello)から保存して別の変数に保存する方法はありますか?

ありがとうございました

答えて

1
var newVar = $("#hello").html(); 
0

$html = document.querySelector("body").innerHTML; 
 
$hello = document.getElementById("hello").innerHTML; 
 
console.log($html); 
 
console.log($hello);
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Title</title> 
 
    <script id="hello"> 
 
     // script data 
 
    </script> 
 
</head> 
 
<body> 
 

 
</body> 
 
</html>

+0

をquerySelectorそれはあなたがそれをスニペットに失敗見たのそれは機能 –

+0

@MartaLoboではないと言いますか?エラーが発生する可能性があります。 –

+0

私のコードでは、HTMLは文字列として保存されるので、html関数を使ってアクセスすることはできません。どうしてsplitとsliceを使って本体と結合するのですか? –

1

のは、パーサを初期化してみましょう、あなたは今の例

var foo = '<body><span>bar</span></body>'; 

ために、変数にHTML文字列を持っているとしましょうこれをHTMLに変換する:

012今
var parser = new DOMParser(); 
var doc = parser.parseFromString(foo, "text/html"); 

それはHTMLに変換されて、あなたは、fooから何かを読み取ることができます。

document.getElementsByTagName("body")[0].innerHTML = doc.querySelectorAll("body")[0].innerHTML; 
+0

Ok ...それは私が必要とするものに近づくように見えますが、 'document.getElementsByTagName(" body ")[0] .innerHTML = doc.querySelectorAll(" body ")[0] .innerHTML;' –

+0

@MartaLobo文書の本文の内側のhtmlを変数テンプレートの本体の内側のhtmlに置き換えます。これは変数からドキュメントに要素を書き込む例です。あなたは事実上何でもすることができます。 –

関連する問題