如何在Javascript中更改字符值?

时间:2010-03-11 12:14:05

标签: javascript character

我这里有这个代码,

{foreach from=$cart.cartItems item="item" name="cart"}    

<div id="cart2Produkt">


 <p>{if $item.Product.ID}
                    <a href="{productUrl product=$item.Product}" data-tooltip="sticky1">{$item.Product.name_lang|truncate:20}</a>
                {else}
                    <span>{$item.Product.name_lang|truncate:20}</span>
                </a>
            {/if}
                <div id="mystickytooltip" class="stickytooltip">

<div style="padding:5px;">

<div id="sticky1" class="atip" style="width:200px;">

<img src="{$item.Product.DefaultImage.paths.3}" alt="{$item.Product.name_lang|escape}"><br>
{$item.Product.name_lang}

</div>

</div>
<div class="stickystatus"></div>

</div>

</p>
 <p>
 {include file="order/itemVariations.tpl"}
            {include file="order/block/itemOptions.tpl"}

            {if $multi}
                {include file="order/selectItemAddress.tpl" item=$item}
            {/if}
            </p>
</div>

{/foreach}

我希望每次循环时将“sticky1”中的“1”更改为“2”(它是foreach的一部分)。

但没有运气..加上我对Javascript有点新,不知道如何将文档写在我想要的地方。

2 个答案:

答案 0 :(得分:0)

foreach循环中生成代码而不是稍后使用javascript修复代码时,更改它会更有效。请注意,如果某人禁用了javascript,您的代码将无法运行,也不会进行更改。如果您在服务器端进行更改,那么它首先会正确生成。

示例:

{foreach from=$cart.cartItems item="item" name="cart"}    

<div id="cart2Produkt">


 <p>{if $item.Product.ID}
                    <a href="{productUrl product=$item.Product}" data-tooltip="sticky{$item.Product.ID}">{$item.Product.name_lang|truncate:20}</a>
                {else}
                    <span>{$item.Product.name_lang|truncate:20}</span>
                </a>
            {/if}
                <div id="mystickytooltip" class="stickytooltip">

<div style="padding:5px;">

<div id="sticky{$item.Product.ID}" class="atip" style="width:200px;">

...

使用javascript(和jQuery以后实现相同的目的)。

   $(function() {
         $('[data-tooltip=sticky1]').each( function(i) {
              var tipNo = i + 1;
              $(this).attr('data-tooltip','sticky' + i);
         });
   });

FWIW,使用document.write()只会将内容附加到文档中。您需要使用jQuery(或其他框架)或纯JavaScript来导航DOM,以查找要更改的元素并更新其属性。使用框架IMO通常比使用普通javascript编写相同的代码容易得多。

答案 1 :(得分:0)

看起来你想使用smarty迭代计数器来设置id。请在此处查看示例7-11:http://www.smarty.net/manual/en/language.function.foreach.php

{* this will output sticky1, sticky2, sticky3, ... etc *}

{foreach from=$cart.cartItems item="item" name="cart"}
    sticky{$smarty.foreach.cart.iteration},
{/foreach}