2011-10-21 4 views
-1

投稿のリストがあります。コンテンツセット "strong"以外のすべてのテキスト/ HTMLコンテンツを削除したいと思います。JQueryでHTMLコンテンツをフィルタリングしますが、特定の要素を除外します

オリジナル

<li id="post"> 
    <p> 
     <strong>Reality</strong> 
    </p> 
    <p> 
     Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 
    </p> 
</li> 
<li id="post"> 
    <p> 
     <strong>Buzz</strong><br> 
     <br> 
     Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 
    </p> 
</li> 
<li id="post"> 
    <p> 
     <strong>Innovation</strong><br> 
     <br> 
     Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 
    </p> 
</li> 

望ましい結果

<li id="post"> 
     Reality 
</li> 
<li id="post"> 
     Buzz 
</li> 
<li id="post"> 
     Innovation 
</li> 

は、どのように私はこのjQueryのを使用して行うことができますか?

+2

http://jsfiddle.net/6awfe/はFYI、idをは一意である必要がありますので、あなたはおそらく= "ポスト" のクラスにID = "ポスト" を変更する必要があります。 –

+1

あなたの受け入れ率は素晴らしいです! ;) –

答えて

0

私のソリューションは、すべての強力な$(「強い」)を選択するセレクタを作成し、その後$内のすべての李さん、その後.each項目(「強い」)を削除し、内部でそれを追加することになります新しい李。


更新:

あなたはこれを試すことができます。

$("li#post").each(function() 
    { 
     $(this).html("[strong start tag]" + $("strong", this).html()+"[strong end tag]"); 
    }) 
0

私の解決策は、すべてのliを削除してから$( "strong")内の項目を削除し、新しいliの中に追加するセレクタを作ることです。

1

以下のコードは意図したとおりに動作します。 id="post"class="post"で置き換えてください!

フィドル:各<li>項目スルーhttp://jsfiddle.net/GfsCB/

$("li.post").each(function(){ 
    var filtered = $("<li>").append($("strong", this).text()) 
    $(this).replaceWith(filtered); 
}); 
  1. ループ。
  2. 新しい<li>要素を作成し、単に作成した<li>要素(filtered)で現在選択されて<li>要素を交換して、すべての<strong>要素
  3. のテキストの内容を追加します。これはあなたの方法であなたを取得する必要があります
0

:また、他の状態として= "ポスト" クラスへ

var htmlText = ""; 
$('.post').find('strong').each(function() { 
    htmlText += "<li class=\"post\">" + $(this).text() + "</li>"; 
}); 

alert(htmlText); 
0
$('.post').each(function(){ 
    $(this).html($('strong', this).text()); 
}); 

変更ID = "ポスト"。 (id Sは一意である必要があります)あなたはclass='post'id='post'を変更しようとしていると仮定すると、

0

$("li.post").each(function() { 
    $(this).text($(this).find("strong").text()); 
}); 

これは、リスト項目に関連するすべての属性を保持し、コンテンツのみを置き換えます。

デモ:http://jsfiddle.net/BRnZh/

関連する問題