单击带有jquery的文本链接

时间:2013-11-08 15:32:25

标签: javascript jquery node.js web-scraping

我正在尝试点击此page底部的链接,并显示“显示更多公司”字样。

到目前为止,我尝试了这两种方法:

    $('a:contains("Show more companies")').click();
    $('a:contains("Show more companies")').trigger('click');

但是我收到了这个错误:

TypeError: Object <a class="button AjaxPagerLink" href="http://www.trustpilot.co.uk/categories/computer?page=2">
Show more companies </a> has no method 'click' at Request._callback (C:\app.js:42:43)

有什么线索是什么问题?我的命令是否正确?任何建议/帮助都非常感谢。

编辑:尝试了所有这些解决方案。得到同样的错误。

6 个答案:

答案 0 :(得分:2)

触发类应该很简单,但你应该验证(似乎是这样)只有一个具有该类名的元素。

$(".AjaxPagerLink").trigger("click");

第二个版本触发该页面上的第一个class =“AjaxPagerLink”元素,只是为了猜测。

$(".AjaxPagerLink")[0].trigger("click");

您也可以尝试[href ^ =“http”] CSS选择器。

$("a[href^='http://www.trustpilot.co.uk/categories/computer?page']").trigger("click");

一般来说:

使用类和ID检索DOM元素是最佳实践(因为它也比解析包含的文本更快)。

<a href='companies.html' id='show_companies'>Show more companies</a>

您应该为元素分配一个ID,然后触发该ID的点击:

$('#show_companies').trigger('click');

只需确保您的ID是唯一的(页面中必须只有show_companies元素)。

答案 1 :(得分:0)

试试这个:

$('a.button.AjaxPagerLink').click();

这比根据文本选择要好。

编辑:如果不是问题,请确保在为该链接注册onClickListener后调用.click()

答案 2 :(得分:0)

尝试:

    $('a:contains("Show more companies")').click(function(){
         var link = $(this).attr('href');
         window.location.href = link;   
    }

答案 3 :(得分:0)

$('a:contains(“显示更多公司”)')[0] .click();

答案 4 :(得分:0)

试试这个:

  $('a:contains("Show more companies")')[0].click();

答案 5 :(得分:0)

您也可以使用此...

$(document).ready(function () {
        $('a:contains("Show more companies")').click(function () {
            alert('I am clicked');
        });
    });