Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击带有jquery的文本链接_Javascript_Jquery_Node.js_Web Scraping - Fatal编程技术网

Javascript 单击带有jquery的文本链接

Javascript 单击带有jquery的文本链接,javascript,jquery,node.js,web-scraping,Javascript,Jquery,Node.js,Web Scraping,我正试图点击这篇文章底部的链接,内容是“展示更多的公司” 到目前为止,我尝试了以下两种方法: $('a:contains("Show more companies")').click(); $('a:contains("Show more companies")').trigger('click'); 但我得到了这个错误: TypeError: Object <a class="button AjaxPagerLink" href="http://www.trustpil

我正试图点击这篇文章底部的链接,内容是“展示更多的公司”

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

    $('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)
TypeError:对象没有应请求“单击”的方法。\u回调(C:\app.js:42:43)
有什么问题的线索吗?我的命令正确吗?非常感谢您的任何建议/帮助

编辑:尝试了所有这些解决方案。获取相同的错误。

请尝试以下操作:

$('a.button.AjaxPagerLink').click();
这比根据文本进行选择要好

编辑:如果这不是问题所在,请确保您正在调用
。为该链接注册onClickListener后,单击()

尝试:

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

$('a:contains(“显示更多公司”)[0]。单击()

触发该类应该很容易,但是您应该验证(看起来是这样的)是否只有一个元素具有该类名

$(".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元素是一种最佳实践(因为它也比解析包含的文本更快)

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

尝试以下操作:

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

你也可以用这个

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

$().click()方法可能重复。click()方法将click事件绑定到事件处理程序,即click()方法的参数。您的代码中没有指定任何处理程序。请参考这里的jQuery文档:我能够在chrome中看到更多的公司,没有任何错误。它正在工作。检查壁画,它不在我的应用程序上。我知道它应该运行,但是当我使用NodeJS运行它时,我得到了这个错误。是的,我已经安装了jquery并正确使用了它。这个链接是ajax,这样做会破坏它的用途。他在web scraping下发布了这个,所以我认为他不能更改html。谢谢@user2932397,我真的错过了那个标签。我得到了这个错误:TypeError:Object#没有方法“click”我在你链接的页面上打开了firebug,然后把这个代码粘贴到控制台上,它就成功了。这不是他想要的。他想在该页面上启动单击处理程序,而不是创建自己的处理程序。他在web scraping下发布,因此我认为他无法将该页面更改为具有onClickListener。不,我的意思是,他可以确保只有在注册了侦听器之后才能调用
click()
。我想我明白你的意思了。因此,确保他的代码在页面的侦听器注册后运行?
  $('a:contains("Show more companies")')[0].click();
$(document).ready(function () {
        $('a:contains("Show more companies")').click(function () {
            alert('I am clicked');
        });
    });