-3

INFOandなどの開始単語と終了単語を見つけて、ENDINFOこれら2つの単語内のすべてを次のクラスのdivでラップしようとしています。.INFO

$(document).ready(function() {
var content = $('.content').html();
var regex = /INFO.*ENDINFO/gi;
var info = content.match(regex);

$('.INFO').html(info);
});​

例:前。

<div class="project_content"><img src="http://lorempixel.com/g/400/200/">
<br>
INFO
<br>
Hello I'm an info div
<br>
ENDINFO
<br>
Additonal content outside of info div

</div>​

後:

<div class="project_content"><img src="http://lorempixel.com/g/400/200/">
<br>
<div class=".INFO">
<br>
Hello I'm an info div
<br>
</div>
<br>
Additonal content outside of info div

</div>​

これはうまくいかないようです。あなたがjsfiddleで見ることができるように。どんな助けでも素晴らしいでしょう。

4

2 に答える 2

2

サンプルコードから、jqueryがどのように機能するかを洗練したいと思うかもしれません。使用したセレクター(.INFOおよび#content)はHTML内のどの要素とも一致しないため、コードは何もしません。

始めるために、あなたが述べたことを達成するための1つの方法があります:http://jsfiddle.net/JRHse/6/

$(document).ready(function(){
    var html = $('#project_content').html();
    var new_html = html.replace(/(INFO((.|\s)*?)ENDINFO)/, "<div class='INFO'>$2</div>");
    $('#project_content').html(new_html);        
});

コードの簡単な内訳は次のとおりです。

$('#project_content') 

これは、要素を。と一致させますid='project_content'

var html = $('#project_content').html();

htmlその要素をターゲットにして、そのHTMLコンテンツをvarに格納します。

var new_html = html.replace(/(INFO((.|\s)*?)ENDINFO)/, "<div class='INFO'>$2</div>");

次に、必要な置換を実行し、出力をとして保存しますnew_html

$('#project_content').html(new_html); 

最後に、HTMLコンテンツを変更されたバージョンで上書きします。

于 2012-07-17T12:37:54.660 に答える
1

' 'は文字.と一致しません。white-spaceこの正規表現を試してください:

var regex = /INFO(.|\s)*ENDINFO/gi;

ライブデモ

于 2012-07-17T12:30:59.323 に答える