【jQuery】親要素を削除する nowrap

jquery

wordpressでカスタムメニューを出力するともちろん、すべてのリストメニューにリンクが張ってあるんですが、どうしても最初のリストメニューのリンクを削除したかったので調べてみた

unwrapを利用した削除

2011/8/5時点では、jquery日本語リファレンスには書いてなかったのだが、要は親要素を削除するメソッド
こいつを利用して削除できるのだが、その前に注意点として「remove」メソッドを利用すれば削除できるんじゃないか?と思ったのだが実際やってみるとリンクのタグである「a」タグをremoveに指定するとその中の文字列もすべて削除されてしまうので注意が必要。


  • 最初のリスト
  • 最初のリスト
  • 上記のようにしたい場合は下記のようにすればいい。

    $("li span").unwrap();
    

    contentsメソッドを利用した親要素削除

    最初の方法はよくspanタグでテキストを消して背景画像を表示させるためにspanで括ってるがspanでくくる必要がない場合はaタグ直下はテキストなので、unwrapで指定することができない

    
    
  • 最初のリスト
  • 最初のリスト
  • 上記のような場合はcontentsメソッドを利用して要素のテキストノードも含めた子要素を取得して親要素のaタグを削除する方法がある

    $("a").contents().unwrap();
    

    動作確認

    というようにcontentsでaタグの子要素のテキストノードを取得してその親要素のaタグを削除って方法

    下記参考サイトが詳しく書いてあります。というか同じメソッドのことなので同じになってしまってます。
    THE HAM MEDIA BLOG「親要素のみ削除する方法[jQuery1.4系版]」