javascript - jQuery : Find text after a string of specific tags and remove img tags if no images

标签 javascript jquery html json rss

我正在开发一个 Feed 阅读器来解析 Google News Feed。 ( Fiddle )。我无法从描述中删除标题和来源。我发现真正的内容是在这串标签</font></b></font><br /><font size=\"-1\">之后。

使用 .after 是否不正确,如var text =$(findImg).after('</font></b></font><br /><font size=\"-1\">').text().substr(0,200)+'...';

此外,对于不包含图像的项目,如何防止添加标签?谢谢。

$('#rssdata').ready(function () {
    $.ajax({
        url: 'http://query.yahooapis.com/v1/public/yql?q=Select%20*%20from%20rss%20where%20url%3D%22https%3A%2F%2Fnews.google.com%2Fnews%2Ffeeds%3Fq%3Dboring%26output%3Drss%22&format=json&diagnostics=true&callback=?',
        dataType: 'json',
        success: function (data) {
            //console.log(data.feed.entries);
            $(data.query.results.item).each(function (index, item) {
                var findImg = item.description;
var img = $(findImg).find('img').eq(0).attr('src');

                var text =$(findImg).after("</font></b></font><br /><font size=\"-1\">").text().substr(0,200)+'...';

                var item_html = '<li><a target="_blank" href="' + item.link + '">' + item.title + '</a><p><img src="' + img +'"/><span>' + text +'</span></li>';
                $('#rssdata ul.rss-items').append(item_html);
            });
            $('#rssdata div.loading').fadeOut();
            $('#rssdata ul.rss-items').slideDown();
        },
        error: function () {}

    });
});

最佳答案

在此处查看修改后的代码 ( Fiddle )

$('#rssdata').ready(function () {
$.ajax({
    url: 'http://query.yahooapis.com/v1/public/yql?q=Select%20*%20from%20rss%20where%20url%3D%22https%3A%2F%2Fnews.google.com%2Fnews%2Ffeeds%3Fq%3Dboring%26output%3Drss%22&format=json&diagnostics=true&callback=?',
    dataType: 'json',
    success: function (data) {
        //console.log(data.feed.entries);
        $(data.query.results.item).each(function (index, item) {
            var findImg = item.description;

            var img = $(findImg).find('img').eq(0).attr('src');

            var text = $(findImg).find("div.lh").children("font:nth-of-type(2)").text().substr(0, 150) + '...';

            var item_html = '<li><a target="_blank" href="' + item.link + '">' + item.title + '</a><p>';
            if (img != undefined && img != null && img != "") {
                item_html += '<img src="' + img + '"/>';
            }
            item_html += '<span>' + text + '</span></p></li>';
            $('#rssdata ul.rss-items').append(item_html);
        });
        $('#rssdata div.loading').fadeOut();
        $('#rssdata ul.rss-items').slideDown();
    },
    error: function () {}

});

});

关于javascript - jQuery : Find text after a string of specific tags and remove img tags if no images,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22401436/

相关文章:

javascript - 如何使用jQuery从 "div"标签的css中获取值?

javascript - 应用 Bootstrap 时,选择下拉菜单在移动设备和 iPad View 中不起作用

javascript - 检测图像是否被代理阻止

javascript - 在 IE 8 及以下版本中使用 knockout 绑定(bind)单击时未选中复选框

javascript - 为什么我必须在 beforeEach() 中调用 spyOn?

javascript - 如何创建按钮并使其在幻灯片中工作?

javascript - 石勒堆导出为pdf

javascript - 为什么捕获阶段不会被 event.stopPropagation 打断?

javascript - 如何监听 socket.io 上的不同端口

javascript - 通过javascript更新多个窗口