0

私はこれを行う必要があります:

var tempDoc;
$(tempDoc).load('<html>' + $(document).find('html').html() + '</html>');

そしてこれを行います:

$('body', tempDoc).css('background-color', '');

ただし、これを行うと、背景色の削除も$(ドキュメント)に影響します。$(document)自体に影響を与えることなく、$(document)を一時変数にダンプし、その中の要素を変更する方法はありますか?

これでも意味があるかどうか教えてください。

4

3 に答える 3

0

documentFragmentを使用してHTMLをダンプし、メインドキュメントに影響を与えずに属性を更新します。

var fragment = document.createDocumentFragment();
fragment.append($(document).html());
$('body', fragment).css('background-color', '');   
于 2012-05-09T16:41:30.490 に答える
0

私はこれをまったく理解していないと思いますが、あなたがただできない理由があります:

var tempDoc = $('html')​.clone();
$('body', tempDoc).css('background-color', 'green');

フィドル

于 2012-05-09T16:58:30.993 に答える
0

.detach()を使用するだけです。それはまさにそのためのものです。

しかし、どういうわけか(正確にはわかりませんが)同じボディオブジェクトを操作しているため、同じ動作になります。

DocumentFragmentは優れたソリューションです。もう1つは、.clone()を使用して体のコピーを作成し、そのコピーを操作することです。

次に、 .replaceWith()を使用して、元のコピーを変更したコピーに置き換えることができます。

var tempBody= $('body').clone(true);
tempBody.css('background-color', 'red');
$('body').replaceWith(tempBody);

http://jsfiddle.net/nezXL/

于 2012-05-09T16:59:53.690 に答える