web-dev-qa-db-ja.com

jQuery文字列から文字列を削除

JQueryの文字列から文字列を削除しようとしています。

文字列は次のとおりです。

username1, username2 and username3 like this post.

このリストからusername1,を削除したいと思います。 .split(', ')を使用して配列にリストを追加しようとしましたが、エラーが発生しました。すべてのWordの後にコンマが付いているわけではないため、エラーが発生していると考えています。

リストから最初のアイテムを常に削除したいです。 username1は単なるユーザー名の例です。最初のアイテムは、この投稿がいいねされている場合、常に現在ログインしているユーザーのユーザー名になります。

私が試してみました:

  var updated_list = $('#post_like_list').html().replace('username1, ', '');
  $('#post_like_list').html(updated_list);

しかし、それはリストを更新しませんでした。ただし、.text()の代わりに.html()を使用すると、リストは更新されますが、リスト内に保持する必要があるリンクがあります。

63
Carl Markham

単純に古い置換関数が必要なことを確認してください。次のように使用します:

myString.replace('username1','');

末尾のコンマを削除したい場合は、代わりにこれを行うと思います:

myString.replace('username1,','');

編集:

サイト固有のコードは次のとおりです。

jQuery("#post_like_list-510").text().replace(...) 
145
nathan gonzalez

Nathan gonzalezの回答を追加するには、ミューテーター関数ではないため、replace関数を呼び出した後に、置き換えられたオブジェクトを割り当てる必要があることに注意してください。

myString = myString.replace('username1','');
15
Malloc

「username1」を単に削除したい場合は、単純な置換を使用できます。

name.replace("username1,", "")

または、前述のように分割を使用することもできます。

var name = "username1, username2 and username3 like this post.".split(",")[1];      
$("h1").text(name);

jsfiddle の例

9
Mark Coleman

誰もあなたの質問にあなたの正確な用語に答えていないことを確認してください、あなたはダイナミックなテキストのためにそれが欲しいです

var newString = myString.substring( myString.indexOf( "," ) +1, myString.length );

最初のコンマから最後までの部分文字列を取ります

1
Sam Alexander

「username1」というテキストは、実際のユーザー名になるプレースホルダーにすぎないと想定しています。仮定して、

  • ユーザー名がnotでスペースを許可されている場合は、最初のスペースまたはコンマの前のすべてを検索します(したがって、「u1 likes this」と「u1、u2、およびu3 like this」の両方を検索します)。
  • isスペースが許可されている場合、クライアントに送信する前に、サーバー側で各ユーザー名をspanタグでラップする方が簡単でしょう。スパンタグ。
1
eykanal