0

私はdivのリストを持っています。私が達成したいのは、 child を削除し、<div class="lol">999</div>それを に置き換えること<div class="lol">111</div>です。

私はそれらの両方のデータ平方を取得する方法を知っています。使ってみ $(this).removeClass('column div'); ましたがうまくいきません。

次の前にhttp://jsfiddle.net/jm4eb/5/にアクセスしてください。

<div class="column" data-square="1-4">
<div class="green">999</div>
</div>


<div class="column" data-square="1-5">
<div class="blue">111</div>
</div>

<div class="column" data-square="1-4">

</div>


<div class="column" data-square="1-5">
<div class="green">999</div>
</div>

こんにちは、これがアプリケーションの仕組みです。10 個の div ボックスがあり、それぞれに 1 つの内部ボックス 12 があり、ユーザーが 1 つの div をクリックし、別の div をクリックするとします。したがって、クリックされた 2 番目の div の内部 div は削除され、最初の div クリックの内部 div に置き換えられます。ただし、外側の div のみが持つ一意のフィールドは data-square です。http://jsfiddle.net/jm4eb/11/にアクセスして、最初の div の内部 div がクリックされた 2 番目の div の内部 div の代わりに移動する場合、2 番目の div の内部 div は置換前に削除されます

4

2 に答える 2

2

削除してから新しい値を作成する代わりに、テキスト値を変更するのはどうですか?

$( '.column' ).each( function () {

    // Save $( this ) and $( this ).next() since we're going to use them multiple times
    var self = $( this ),
        next = self.next()

    // For each of them, save the firstChild's text
    var val = self.children().first().text()

    // Now, check if the next DIV exists
    if ( next ) {

        // If it does, change the text of its first child with the "val" variable
        next.children().first().text( val )
    }
} )

編集:に置き換えられ.find( '>:first-child' )ました.children().first()。jQueryにシムするメソッドがないなんて信じられませんfirstElementChild

@Esailijaはまた、このメソッドが欠落しているのは奇妙だと考えました。そこで彼はjQueryプラグインを作成しました。つまり、self.firstChild().text()の代わりに使用できますself.children().first().text()

于 2012-04-22T17:25:50.763 に答える
0

私が正しく理解している場合は、ユーザーが最初にクリックした div のコンテンツを、2 番目にクリックした div に配置する必要があります。問題の dv が (クリックによって) 既に選択されており、そのデータ スクエアがあるので、html をコピーするだけです。例: http://jsfiddle.net/jm4eb/6/最初の div のコンテンツを空にしたい場合は.html("")、最初のクリックで追加するか、クリックした div への参照を保存して.html("")、保存した参照で実行します。 2回目。

あなたの質問で何か見逃しましたか?

于 2012-04-22T17:56:16.917 に答える