2012-04-17 18 views
0

私のユーザーが自分のウェブサイトにメッセージを投稿できるようにしています。リンクを文字列に置き換える正しい方法

<a href="ss/explosion.wav">%explosion</a>

私はjQueryのを使用しています:爆発に変更します

<a href="ss/pop.wav">%pop</a>

%:私は、次のようなフォーマットされてしまうのリンクを持つ%ポップとして物事を交換できるようにしたいです誰が私がこれをどうやってやるのか知っていますか?

答えて

2

このコードはjQueryのを必要とするdoen't(私は簡潔のために、クラスを使用することをお勧めしたい):

"<のhref =" SS /ポップ:中

"The %pop is here".replace(/%(\w+)/g, '<a href="ss/$1.wav">%$1</a>') 

結果。 WAV「>%ポップ</>ここで」

+0

うわー、完璧に働いた。ありがとう! – FreeSnow

1
$("a").each(function() { 
    var href = $(this).val().split("%")[1]; 
    if(href.length > 0) { 
     $(this).attr("href", "ss/"+href+".wav"); 
    } 
});​ 

あなたは面倒および/または遅くなる可能性があり、ページ上のすべての要素を反復処理aとして、当然のことながら、あなたのHTMLのアーキテクチャと一致するセレクタを調整することをお勧めします。

1

は、括弧内の値を取得%をフィルタリングし、HREFを割り当てるために、すべてのインスタンスを介してループをタグにクラスまたはRELを割り当てます。

jQuery("div.message").each(function() { 
    jQuery(this).html(jQuery(this).text().replace(
     /%(\w+)/g,"<a href='ss/$1.wav'>%$1</a>" 
    )); 
}); 

変更し、必要に応じて "div.message" セレクタ:jQueryののミックスと正規表現を使用して

$('a.get-path').each(function(){ 

    // Cache the $(this) object 
    var $this = $(this); 

    // Strip out the % from the "file name" and create the path 
    var myPath = $this.html().replace(/%(.*)/, "ss/$1.wav"); 

    $this.attr('href', myPath); 

}); 
2

。 各div.messageに対して反復処理を行い、必要に応じて%fooの各出現箇所を置き換えます。

+0

これはすべての試合を置き換えるために私を助けてくれました。ありがとうエコーファージ。 – Hugo