2

JQuery の .append() および .remove() 関数を使用して、div から変数を追加および削除しています。

そのため、ものが内部にある場合、div は次のようになります。

<div id="list">
    <a>var1</a>
    <a>var2</a>
    <a>var3</a>
</div>

問題は、div 内の何かに .remove() を使用すると、DOM にスペースが残ることです。したがって、次のようになります。

var1

var3

なぜこれが起こっているのか理解していますが、.remove() を使用した後に div 出力を次のようにする別の JQuery 関数でこれを解決する簡単な方法はありますか?

var1
var3

それとも、もっと複雑なことをする必要がありますか?

4

3 に答える 3

3

あなたの要素は実際には改行を含むテキストノードで囲まれているため、html が言うとおりです。信じられない場合: http://tinker.io/7f667/1

\n<a>var1</a>\n<a>var2</a>\n<a>var3</a>\n

html は (通常) 空白を区別しないため、表示されていることに気づきません。

周囲の改行を削除する場合は、DOM にそれらを削除するように指示します: http://tinker.io/7f667/2

//assuming `list` is your container, and `toRemove` is the element to be removed
list.removeChild(toRemove.previousSibling);
list.removeChild(toRemove.nextSibling);
list.removeChild(toRemove);

必要に応じて、それをjqueryコードに変換するのは簡単です。周囲のテキスト ノードは要素ではないことに注意してください。

于 2013-07-12T18:12:00.530 に答える