在Jquery代码问题中的Smarty变量?

时间:2014-03-27 16:06:20

标签: javascript jquery smarty

当我在Jquery的{literal}{$txt_more}{/literal}之间放置SMARTY变量时,在源代码中它显示正确的文本(没有引号)但在控制台中显示此错误: ReferenceError:v \ u00EDce未定义 - 我认为这个错误是因为它不在引号中 但当我把它放入引号{literal}'{$txt_more}'{/literal}时,它在源代码中显示为'více',但不会在带有类show_text的标签之间显示为文本(标签内部为空)。你能帮助我吗 ?非常感谢你。

使用SMARTY的Jquery:

$('.show_text').text({/literal}'{$txt_more}'{literal}); // verison with quotes is without error but still not display text between tags with class show_text

$('.show_text').text('show more'); // with show more typed it displays as it should on website

HTML:

<a href="#">
  <strong class="show_text" style=" margin-top: 5px; text-align:center; overflow:hidden;white-space:nowrap;position:absolute; z-index:2"></strong>
  <img style="position:relative;" class="cond-arr" src="/css/showmore.png" alt="show_more" />
</a>

2 个答案:

答案 0 :(得分:1)

错误的引用,应该是:

$('.show_text').text("{/literal}{$txt_more}{literal}");

答案 1 :(得分:0)

如果你正在使用Smarty 3,那么你就不再需要{literal}了,只需确保在你的代码之后总是有空格{/ p>

如果使用smarty 2,你不需要对文字如此具体,请记住问题仅在有&#34; {&#34;。使用以下解决方案之一,您的代码看起来会更清晰:

{/literal}
$('.show_text').text('{$txt_more}');
{literal}

或在代码开头使用javascript变量并使用文字包围其他所有内容只是为了安全

txt_more='{$txt_more}';

{literal}
...
$('.show_text').text(txt_more);
...
{/literal}