0

我正在尝试单击此页面底部带有“显示更多公司”文本的链接。

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

    $('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)

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

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

4

6 回答 6

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 元素)。

于 2013-11-08T15:44:47.570 回答
0

你也可以用这个...

$(document).ready(function () {
        $('a:contains("Show more companies")').click(function () {
            alert('I am clicked');
        });
    });
于 2013-11-08T15:46:12.473 回答
0

尝试这个:

  $('a:contains("Show more companies")')[0].click();
于 2013-11-08T15:44:47.907 回答
0

尝试这个:

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

这比根据文本选择要好。

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

于 2013-11-08T15:37:44.960 回答
0

尝试:

    $('a:contains("Show more companies")').click(function(){
         var link = $(this).attr('href');
         window.location.href = link;   
    }
于 2013-11-08T15:37:58.073 回答
0

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

于 2013-11-08T15:41:39.213 回答