1

私は、jQuery 1.8以降で.before、.after、または.replaceWithを使用してDOMから切断されたテンプレートコンテンツを操作できることに慣れています。1.9では、これらのメソッドは常に変更されていない元のセットを返すため、これらのメソッドで切断されたノードを操作する機能が完全に失われたようです。

例えば:

// prepare some disconnected content, e.g. compiling templates
var $node = $('<div>before</div>');
// later do some calculations and have a need to splice some disconnected content together
var $after = $('<div class="green">after</div>');
$node.after($after)
// Add to the DOM
$('.result').append($node);

これがどのように壊れるかを示すフィドルは次のとおりです。

一貫性を保つためにjQueryでこの動作を削除しても問題ありませんが、回避策が必要です。この方法でノードを操作するために、切断されたノードをdomに接続する必要はありません。また、接続する必要もありません。

jQuery 1.9の新しい.after、.before、.replaceWithの動作をどのように回避しますか?

4

2 に答える 2

2

存在しないDOMに追加しようとする代わりに、jQueryセレクターに追加するだけです(つまり、.add代わりに使用します)。これはうまくいくようです:

http://jsfiddle.net/hTp27/3

于 2013-01-17T07:55:44.610 に答える
0

ノードに追加するだけです:

// prepare some disconnected content, e.g. compiling templates
var $node = $('<div>before</div>');
// later do some calculations and have a need to splice some disconnected content together
var $after = $('<div class="green">after</div>');
$node.append($after)

// Add to the DOM
$('.result').append($node);
于 2013-01-17T08:03:17.823 に答える