Tweetカテゴリ:jQueryタグ:jqueryjavascript上の図にしたように、子要素を持つ親要素のみを削除したいとき、jQueryを使って表現するにはどうしたらいいんだろう?なんてのを悩んで結局できなかった。ためしたものをメモエントリーとして書いておく。href="#damy"><span>ダミーテキスト</span></a>これにJavaScriptを適応させて、リンクが外れていたら成功になる。ダミーテキスト失敗だと、上のようなままか、もしくは中身が消失する。$('a[href*="damy"]').remove();});ちなみに、$('a[@href*="damy"]')の部分はa要素のリンク先のURLで「damy」の文字を含んでいるリンクを対象とするという指定です。中身もろとも消えてしまうことになる。$('a[href*="damy"]').replaceWith($(this).html());});■プレビューダミーテキストこれも中身ごと消失。指定のしかたがよくなさそう。replaceWithの使い方かな?上記の例だと、要素に直接.replaceWith()をつけてみたけど、どうもこれだと挙動がおかしい。全体の文字情報が表示されてしまった。一つずつに適応するようにeachを使ってみる。});});■プレビューダミーテキストおっ、消えた!!eachを使うようにしないとだめなようだ。これは応用がききそうなので、覚えておくようにしよう。実はこのエントリーを書くまではeachなんて使うこと浮かばずストップ。ひらめきが足りずに、できないまま悩んでいた。text()なんてのを試したときに、ページ全体のテキストが出てきてそれでひらめいた!いろいろためしてみるもんですね。TrackBack(0)この記事へのコメント毎度どうもです。innerHTMLでリプレースする方法だと、子・子孫要素に割り当てたイベントなどが消失してしまうので、以下のように子・子孫要素を一旦よけといてから削除するようにしています。style="position:relative"></div>とかを一時的に生成した場合、削除する時に使用したりします。2008年11月13日>cyokodogさんいつもコメントありがとうございます♪そのプログラムを試してみたところ、.contents()の動作に驚きました。href="#"></a><span>ダミー</span></div>という出力でした。.after($(this).contents())は、thisの中身の移動になるのですね。2008年11月14日ちょうどjQueryで同様のことを考えていたので、大変助かりました!ありがとうございます。今はunwrapメソッドがありますね(jQuery1.4以降のようです)。なんか最近の日付でtweetされているので一応残しておきます。contentsメソッドは勉強になりました。[必須入力]※画像の中の文字を半角で入力してください。