0

要素内から文字列を削除することについて具体的に述べた以前の投稿に便乗しています。それを行うコードは次のとおりです。

  $this.text( $this.text().replace("text to strip out", "") );

テキスト「categories:」の削除に成功しました。

参考: これは、動的に追加されるカテゴリを含むブログ ページです。"categories: " を削除する前の HTML 構造:

<container>
   <div class="categories">
     "categories: "  //This is what I strip out with above code
     <a href = "...">Category Name</a> //This is a linked category name
   </div>
</container>

問題は、「categories:」を削除すると、「Category Name」も削除され、リンクされていない「Category Name」が残ることです。

jquery を実行すると、html は次のようになります。

 <container>
   <div class="categories">Category Name</div>
</container>

ユーザーが「カテゴリ名」をクリックして留まることができるようにしたいので、リンクをアクティブにしておく必要があります。

4

3 に答える 3

0

を削除するには、それらを取得するtextNodeために使用する必要があります。次に、との組み合わせを次のように使用します。contents()filter()remove()

$('.categories')
    .contents()
    .filter(function() { return this.nodeType == 3; })
    .remove();

フィドルの例

これにより、すべての直接の子textNodeが削除されることに注意してください。ノードのテキストでフィルタリングする場合は、filter()それに応じて関数を修正します。

于 2013-02-07T17:11:22.223 に答える
0

代わりにこれを試してください...

$("div.categories").each(function() {
    var $this = $(this);
    $this.html($this.html().replace("categories: ", ""));
});
于 2013-02-07T17:11:19.573 に答える
0

それを行う 1 つの方法は、アンカー要素を JavaScript 変数として保存することです。次に、削除したいものを削除した後、そのアンカーを元に戻します.

于 2013-02-07T17:00:42.017 に答える