1

我的jQuery模板是很简单这是我怎样才能从解析HTML中jquery.tmpl串

<div id="pageArticleTemplate" class="hide-me"> 
    <article class="post-item"> 
     <div class="wrapper row"> 
      <div class="meta"> 
       ${getArticleDateFormat(createdDate)} 
      </div> 
      <h2>${title}</h2> 
      <div class="excerpt text-justify"> 
       {{html description}} 
      </div> 
     </div> 
    </article> 
</div> 

我用我的js文件这个模板为:

var markup = $("#pageArticleTemplate").html(); 
$.template("pageTemplate", markup); 
$.tmpl("pageTemplate", data).appendTo("#articles"); 

,其中数据是我想重复的实际数据。文章是页面上的另一个div元素。 它工作正常,但问题是有时描述太长,我只想显示前500个字符。 正如你所看到的描述是html的内容,我已经尝试使用像我用于createdDate功能(function getArticleDateFormat{}

请提供一些解决方案。 谢谢

回答

0

这不是一个特定于jQuery模板的问题,而是一般的HTML问题 - 也就是说,您不能简单地截断HTML标记以使其显示字符较少。显然,如果你截断它,它可能不再是格式良好的HTML。您必须简单地显示文本内容并截断它,或者您必须解析或逐步浏览HTML节点,并在最后删除或截断文本节点。

+0

非常感谢@Boris。我非常感谢你的回答。我知道这不是模板问题。你能帮我吗?我如何从这里截取解析的html。这真是一个很棒的模板库,我不想仅仅为了截断而进行整个代码替换。我不知道如何继续我的代码。提前致谢。 –

+1

你应该可以在'{{truncate(description,500)}}'中提供'truncate()'函数。执行该功能的一种方法是将描述标记插入临时DIV元素,并使用jQuery'method()或querySelectorAll(*)'来获取包含文本节点的所有节点。遍历它们并在最后删除或截断它们。然后再次使用div的innerHTML并返回... – BorisMoore