检查RSS源中的HTML标记并删除

时间:2015-12-03 09:29:46

标签: javascript handlebars.js

您好,我一直在编写一个RSS源列表的应用程序。我一直把我的按钮连接到他们的对象计数器部分(按钮显示特定的饲料EG BBC按钮显示BBC rss饲料,Guardian显示Guarian新闻并隐藏BBC)然而看着容器他们变得非常倾斜由于把手帮助我合并使饲料看起来不错。
帮助程序允许我缩短订阅源描述并使用省略号结束缩短版本。这导致问题的原因是因为其中一个提要在其描述中包含HTML,这意味着在描述中的maxLength HTML标记仍然被添加到页面之后。这使我的容器有其他不需要的HTML元素 我希望这是足够的解释,TL; DR是RSS描述中返回的HTML,是在我的页面中添加不需要的HTML。怎么修?

我的助手方法:

    handlebars.registerHelper("rssDesc", function(results) {                
    var maxLength = 164;        

    //this checks for multiple descriptions and shows first
    if(Array.isArray(results)) {
        results = results[0];
    }

    //this checks to see if text contains html markup and converts it to text HOWEVER doesn't work yet. T_T
    if(results.indexOf("<") > -1) {
        results = $(results).text();    
    }
    results = results.substring(0, maxLength);

    return results.substring(0, Math.min(results.length, results.lastIndexOf(" "))) + " ...";
});

车把模板

<div class="rssButtons">
    <a class="1">news 1</a>
    <a class="2">news 2</a>
    <a class="3">news 3</a>
    <a class="4">news 4</a>
</div> 
<div class="rssContainer">
    {{#each items}}
    <div class="tab" id="{{this.name}}">
    {{#each data}}
    <div class="news-item">
    <span class="news-title">{{title}}</span>
    <span class="news-publishing">{{publishingDate}}</span>
    <span class="news-description">{{{rssDesc description}}}</span>
</div>
    {{/each}}
</div>
    {{/each}}
</div>

2 个答案:

答案 0 :(得分:1)

根据这个post,jquery方式是最简单的

// retrieves all the text from a string of html.    
jQuery(html).text();

答案 1 :(得分:0)

根据此处提供的链接 - &gt; jQuery: $(element).text() doesn't work

我有时读过.text();如果它不是第一个,并不总是很好。截至.text()的两个小时的实现;在助手的开头(在var下)事情一直很棒!