利用jQuery选择器简化HTML解析器代码

时间:2014-10-11 20:16:01

标签: javascript jquery html jquery-selectors

此代码使用jQuery find()和几个if语句从HTML文档中挑选出某些文本。

我正在尝试删除if语句并将它们解释为find()中jQuery选择器,位于最顶层的代码行。这可能吗?如果是这样,选择者需要做什么?

$(document).find("a[href^='http://fakeURL.com/']").each(function()
{                                           
    var title = $(this).text();
    var url = $(this).attr('href');

    if(title.indexOf('Re: ') != 0)
    {
        if($(this).parent().attr('class') != 'quoteheader')
        {
            if(url.indexOf('topic') == 36)
            {
                if($(this).parent().attr('class') == 'middletext')
                    {

                        console.log(title);

                    }
            }
        }
    }
});

1 个答案:

答案 0 :(得分:0)

对于我离开的最后一件事,您想检查主题是否在索引36处?不确定它是否可以通过选择器,旁边一切都进入选择器(代码未测试,应该工作)

$(document).find(".middletext:not(.quoteheader) > a[href^='http://fakeURL.com/']").each(function()
{
    if(url.indexOf('topic') != 36)
        return;

    var title = $(this).text();

    if(title.indexOf('Re: ') != 0)
        return;

    console.log(title);
});