2012-02-13 45 views
1

jQueryオブジェクトに格納されている特定の要素のテキストに対して「検索と置換」操作を実行します。私は正規表現のセレクタを使用するjavascript関数.replace()を使用してテキストを置き換えたいです。このサンプルコードを修正するにはどうすればよいですか?jQuery:.replace()を使用して要素内のテキストを置き換えます。

$(JQUERY_OBJECT).html(
    $(this).text().replace(/REGEX_EXPRESSION/, 'REPLACEMENT_TEXT') 
); 

:私が操作していますjQueryのオブジェクトは、子要素を含んでいてもよいが、私はそれらを保存する必要はありません。だから私は.text()を使用しています。しかし、内部要素を破棄せずに.replace()関数を実行することができれば、それは素晴らしいことです。

答えて

0
var text = $(this).text().replace(/REGEX_EXPRESSION/, 'REPLACEMENT_TEXT'); 
$(this).text(text); 

さらに適切な場合は、2番目のtext()の代わりにreplaceWithを使用できますか?

2

最新のバージョンのjQueryを使用している場合は、.html()メソッドは引数として関数を受け取り、関数は引数として現在のコンテンツを受け取り、戻り値を使用して現在のコンテンツを置き換えます。

ので、コードは次のようになります。

.text()それは同じ話

$(JQUERY_OBJECT).text(function(idx,oldText){ 
    //idx is the index of the current element in the JQUERY_OBJECT 
    return oldText.replace(/REGEX_EXPRESSION/, 'REPLACEMENT_TEXT') 
}); 

http://api.jquery.com/text/#text2

それとも、すでに持っているものを再書き込みするためですを使用して

$(JQUERY_OBJECT).html(function(idx,oldHtml){ 
    //idx is the index of the current element in the JQUERY_OBJECT 
    return oldHtml.replace(/REGEX_EXPRESSION/, 'REPLACEMENT_TEXT') 
}); 

http://api.jquery.com/html/#html2

.hの組み合わせを使用してtmlと.text

$(JQUERY_OBJECT).html(function(idx,oldHtml){ 
    return $(this).text().replace(/REGEX_EXPRESSION/, 'REPLACEMENT_TEXT') 
}); 
+0

1.私が言った入力引数を説明するjQueryドキュメントへのリンクを提供できますか? jQueryの.html()ドキュメントページであなたが私に言ったことの説明を見つけることができませんでした。 –

+0

2. .html()ではなく、.text()関数を使用して要素の内容を取得する必要があります。それに応じてあなたの答えを修正できますか? –

+0

2.要素の子を保存したいと思っていますが、それを行うことはできないと思ってください。テキスト() – ekhaled

関連する問題