0

異なる電話番号で何度も表示される次の html を含むページがあります。

<div class="crm-content crm-contact_phone primary">
    <span>5555551212</span>
</div>

電話番号自体は、smarty 変数を使用して {$phone.i.phone} の形式で表示されます。ここで、i は電話番号の配列の配列キーです。

これらの電話番号の形式を js を使用して変更できるようにしたいと考えています。

したがって、電話番号が 1 つだけの場合は、smarty .tpl ファイルで次を使用していました。

{literal}
cj(function($){

  var phoneNumber = {/literal}{$phone.1.phone}{literal};

  var phoneNumberFormatted = '(' + phoneNumber.substr(0,3) + ') ' + phoneNumber.substr(3,3) + '-' + phoneNumber.substr(6);

  $(".crm-contact_phone span").text(phoneNumberFormatted);

});
{/literal}

だから私は、次の行に沿って何かをする必要があると考えています:

$('.crm-contact_phone span').each(function(i, obj) {
    var phoneNumber = '' + {/literal}{$phone.1.phone}{literal};   
}

しかし、smarty 変数内の 1 を JavaScript インデックス i に置き換える方法がわかりません。

何か案は?ありがとう。

4

2 に答える 2

0

これを試して

$('.crm-contact_phone span').each(function(i, obj) {
      var phoneNumber = '' + {/literal}{$phone[i].phone}{literal}; 
}

ブラケット表記を使用してiに置き換えます。

于 2012-12-03T20:26:59.703 に答える
0

私は最終的に別のアプローチを取り、以下を使用して smarty 配列全体を js 配列に保存しました。

var phoneNumbers = {/literal}{$phone|@json_encode}{literal};

その後、純粋な js を使用して電話番号にアクセスできます。

 var phoneNumber = phoneNumbers[i]['phone'];
于 2012-12-03T21:25:01.187 に答える