jQuery:在一串特定标签后查找文本,如果没有图像则删除img标签

时间:2014-03-14 09:50:14

标签: 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 () {}

    });
});

2 个答案:

答案 0 :(得分:1)

说实话,我认为你做得对。我的意思是你获得描述的方式。我编辑你的小提琴,在没有图像时不显示IMG标签。 http://jsfiddle.net/veritas87/cYFLe/32/

if(typeof img != 'undefined') {
                  var imgTag = "<img src='" + img + "' />";     
                } 

                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>' + imgTag + '<span>' + text +'</span></li>';

如您所见,它检查IMG var是否未定义。当IMG var未定义时,它构造IMG标签。

答案 1 :(得分:1)

请在此处查看修改后的代码(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 () {}

});

});