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');
});
});