Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从jquery.tmpl中解析的html中获取子字符串_Javascript_Jquery_Asp.net Mvc_Jquery Plugins_Jquery Templates - Fatal编程技术网

Javascript 如何从jquery.tmpl中解析的html中获取子字符串

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

我的jquery模板非常简单

<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元素中,并使用类似jQuery
contents()
queryselectoral(*)
的方法来获取包括文本节点在内的所有节点。遍历它们,并在最后删除或截断它们。然后再次获取div的innerHTML并返回…非常感谢@Boris。我真的很感激你的回答。我知道这不是模板问题。你能帮我从这里开始截短解析过的html吗。这是一个非常棒的模板库,我不想为了截断而进行整个代码替换。我不知道如何继续我的代码。提前感谢。您应该能够在提供
truncate()函数的地方执行
{{html truncate(description,500)}}
。实现该功能的一种方法是将描述标记插入到临时DIV元素中,并使用类似jQuery
contents()
queryselectoral(*)
的方法来获取包括文本节点在内的所有节点。遍历它们,并在最后删除或截断它们。然后再次获取div的innerHTML并返回。。。
var markup = $("#pageArticleTemplate").html();
$.template("pageTemplate", markup);
$.tmpl("pageTemplate", data).appendTo("#articles");