Javascript 如何从jquery.tmpl中解析的html中获取子字符串
我的jquery模板非常简单Javascript 如何从jquery.tmpl中解析的html中获取子字符串,javascript,jquery,asp.net-mvc,jquery-plugins,jquery-templates,Javascript,Jquery,Asp.net Mvc,Jquery Plugins,Jquery Templates,我的jquery模板非常简单 <div id="pageArticleTemplate" class="hide-me"> <article class="post-item"> <div class="wrapper row"> <div class="meta"> ${getArticleDateFormat(createdDate)} &l
<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>
其中data是我要重复的实际数据。文章是页面上的另一个div元素。
它工作正常,但问题是有时描述太长,我只想显示前500个字符。
正如您所看到的,描述是html内容,我已经尝试使用类似createdDate的函数(函数getArticleDateFormat{}
)
请提供一些解决方案。
谢谢这不是jQuery模板的特定问题,而是HTML的一般问题,即不能简单地截断HTML标记以使其显示更少的字符。显然,如果您截断它,它可能不再是格式良好的HTML。要么只需显示文本内容并将其截断,要么解析或单步遍历HTML节点,并删除或截断末尾的文本节点。这不是特定于jQuery模板的问题,而是HTML的一般问题,即不能简单地截断HTML标记以使其显示更少的字符。显然,如果您截断它,它可能不再是格式良好的HTML。要么只需显示文本内容并将其截断,要么解析或逐步遍历HTML节点,最后删除或截断文本节点。非常感谢@Boris。我真的很感激你的回答。我知道这不是模板问题。你能帮我从这里开始截短解析过的html吗。这是一个非常棒的模板库,我不想为了截断而进行整个代码替换。我不知道如何继续我的代码。提前感谢。您应该能够在提供
truncate()函数的地方执行{{html truncate(description,500)}}
。实现该功能的一种方法是将描述标记插入到临时DIV元素中,并使用类似jQuerycontents()
或queryselectoral(*)
的方法来获取包括文本节点在内的所有节点。遍历它们,并在最后删除或截断它们。然后再次获取div的innerHTML并返回…非常感谢@Boris。我真的很感激你的回答。我知道这不是模板问题。你能帮我从这里开始截短解析过的html吗。这是一个非常棒的模板库,我不想为了截断而进行整个代码替换。我不知道如何继续我的代码。提前感谢。您应该能够在提供truncate()函数的地方执行{{html truncate(description,500)}}
。实现该功能的一种方法是将描述标记插入到临时DIV元素中,并使用类似jQuerycontents()
或queryselectoral(*)
的方法来获取包括文本节点在内的所有节点。遍历它们,并在最后删除或截断它们。然后再次获取div的innerHTML并返回。。。
var markup = $("#pageArticleTemplate").html();
$.template("pageTemplate", markup);
$.tmpl("pageTemplate", data).appendTo("#articles");