1

jQuery の replaceWith を使用して、1 つの要素を他の 3 つの要素に置き換えようとしていますが、機能していないようです。

HTML:

<span>first</span>
<span>second</span>
<span>third</span>

JS:

var spans = $("span");
spans.eq(1).replaceWith("<span></span><span></span><span></span>");

これは、私が書いている場合、次のようになります。

<span>first</span>
<span></span><span></span><span></span>
<span>third</span>

しかし、何も変わりません...何か考えはありますか?

編集:これは例として意図されたものであり、実際のdomと生成されたdomの違いを考慮していませんでした(違いはありますか?そう見えます...)

var spans = $("<span>first</span><span>second</span><span>third</span>");
spans.eq(1).replaceWith($("<span></span><span></span><span></span>"));

だから私のコードのより正確な描写があります。

4

2 に答える 2

1

編集。http://jsfiddle.net/z9VDw/3/を確認してください。このような操作を行う前に、切断された DOM ノードを追加する必要があるようです。

于 2011-02-11T17:56:17.463 に答える
0

あなたがやろうとしていることを見ると、うまくいきません。フラグメントを使用した Dom 操作は、jQuery では機能しません。(attributes/css の設定以外。)replaceWith次の要素の前に値を挿入します。この場合、 and が再び<span>third</span>返されます。これは、を呼び出す前のものです。どれがthisthisreplaceWith<span>second</span>

于 2011-02-11T18:04:05.043 に答える