0

我有一个带有以下 html 的页面,该页面使用不同的电话号码多次出现:

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

电话号码本身使用 {$phone.i.phone} 形式的 smarty 变量显示,其中 i 是电话号码数组中的数组键。

我希望能够使用 js 更改这些电话号码的格式。

因此,对于一个电话号码,我在我的 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};   
}

但我不知道如何用 javascript 索引 i 替换 smarty 变量中的 1。

有任何想法吗?谢谢。

4

2 回答 2

0

尝试这个

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

使用括号 Notation并将其替换为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 回答