2011-07-15 17 views
2

スマートフォンサポートのために、<a>の電話番号をhrefの番号で囲むことを希望する連絡先情報があります。段落内の動的テキストのターゲット設定

初期マークアップ:

<p class="myClass"> 
    <a href="mailto:[email protected]">[email protected]</a><br /> 
    Phone: 88 88 88 88<br /> 
    Fax: 88 88 88 87<br /> 
</p> 

今、マークアップは、しかし、番号とアドレスが変更され、同じままになります。したがって、私の最初のアイデアは、 "電話"の後にアンカーを開始し、2番目のブレークタグの前に閉じてから、その値を取得してhrefに貼り付けることでした。悲しいことに、それはタグがすぐに閉じられるので、そのようには機能しません。

$("p.myClass:contains('Phone')").each(function(){ 
    var org = "Phone: "; 
    var rep = "Phone: <a>"; 

    $(this).html($(this).html().replace(org, rep)); 
    $("</a>").insertBefore("p.myClass:contains('Phone') br:nth-child(3)"); 
}); 

だから私は本当にで終わるしたいのか、そのように、包まれた電話番号を持つことです:{数}は動的な値で、残りである

Phone: <a href="tel:{number}">{number}</a>

、のマークアップは同じままです。私は実際に動作するソリューションを探していますが、私は上記の混乱よりも好ましくはきれいです。 :) 何か案は?

答えて

3
$("p.myClass:contains('Phone')").each(function(){ 
    var elem = jQuery(this); 
    var html = elem.html().replace(/(Phone:)([^<]+)/i,"$1 <a href='tel:$2'>$2</a>"); 
    elem.html(html); 
}); 

Running example

+0

乾杯!魅力のように動作します。ある日、私は正規表現として知られるこの暗い魔法を学ぶことを誓う。 – Nix

1

私はこれを行います。

spanに電話番号をラップします。

<p class="myClass"> 
    <a href="mailto:[email protected]">[email protected]</a><br /> 
    <span id="phone">Phone: 88 88 88 88</span><br /> 
    Fax: 88 88 88 87<br /> 
</p> 

は、その後、次の

var phone = $('#phone').text().split(": "); 
$('#phone').html(phone[0] + ': <a href="tel:' + phone[1] + '">' + phone[1] + '</a>'); 

http://jsfiddle.net/jasongennaro/ARUms/

+0

このソリューションは正常に動作します:-) hCardマイクロフォーマットを使用して、しかし私は、マークアップを制御できません。おそらく、JSでその周りにスパンを追加することはできますが、私の元のアプローチよりはるかにクリーンではありません。とにかくありがとう。 – Nix

0

を行うあなたはマークアップのコントロールを持っていますか?もしそうなら、私は<span class='xxx'>タグのさまざまなビットをラップすることをお勧めします。クラスは電話/ファックス/電子メールです。それは、交換のためにさまざまなビットをターゲットにするほうがずっと簡単です。または、全体の豚を行くと

+0

マークアップを制御すると、なぜそれをラップしますか?それを正しい方法で出力しないでしょうか? :) – epascarello

+1

@epascarello - true :-)携帯機器がクライアント側で検出された場合、おそらくNixはこのjQueryの魔法を実行しているだけでしょうか?実際に言うのは難しいですが、あなたのような簡単な提案が最高です:-) –

+0

または、彼は開発者がたくさんいるので、バックエンドを変更するのに忙しいです。何度もそこにいた。 lol – epascarello

関連する問題