TypeError:无法读取null的属性“click”

时间:2014-06-04 17:00:41

标签: javascript jquery html console greasemonkey

我使用这些代码在Twitter上大规模关注/取消关注/收藏/不喜欢;

$('button.follow-button').click();
$('button.ProfileTweet-actionButtonUndo').click();
$('a.favorite').click();

我在网上发现了一些不工作的代码并尝试修复,所以他们现在几乎正在工作。 唯一的办法是转到google chrome页面,按f12,打开控制台并运行命令。

所以现在,我想在Vine中使用相同的系统。有一个扩展谷歌铬使用藤(https://client.vineclient.com/),我试图使用它,因为原始网页(vine.co)甚至没有用。

推特与此之间的唯一区别在于,在葡萄酒客户端中为^粉丝^部分,页面中会出现一个弹出窗口。而且我不知道它是否检测到按钮。

所以,我试图从原始页面点击的按钮的代码,(我使用开发人员工具/元素获取它)

<div class="user">
<img alt="Tuğçe Nur TEKİN" class="avatar" src="http://v.cdn.vine.co/r/avatars/3C2E4F40F11066473630650847232_pic-r-1397241239141e51579937f.jpg.jpg?versionId=ttIz4CExCjW_4TEnxYbnehPPpXRyzMco">
<div class="wrapper">
<a class="username" 
href="https://client.vineclient.com/explore/users/1066473613911363584">
Tuğçe Nur TEKİN
</a>
</div>
<a class="button follow" data-id="1066473613911363584">
<i class="icon">
</i>
</a>
</div>

要点击的是:

当我手动点击时,它会变为:

<a class="button unfollow" data-id="1066473613911363584"><i class="icon"></i></a>

我用来尝试点击的命令

$(".a.follow").click();

我得到的错误,

TypeError: Cannot read property 'click' of null

我该如何解决? 顺便说一句,在这些代码中,我实际上找不到任何^按钮^代码.. 谢谢!

更新

  1. http:// prntscr。 com / 3pmo2i
  2. http:// prntscr。 com / 3pmoyk
  3. http:// prntscr。 COM / 3pmpym

4 个答案:

答案 0 :(得分:21)

当我在其他地方(例如Selenium)的网页上运行javascript同时使用开发者工具时,我遇到了这个问题。 尝试关闭开发人员工具并运行脚本。

答案 1 :(得分:3)

为了使用jQuery库,您需要确保已在页面上加载库。正如@adeneo所提到的,jQuery不返回空值,这意味着$变量保持对不是jQuery的对象的引用。要验证是否在页面上加载了jQuery,请在chrome调试器中输入typeof jQuery。如果在页面上加载了jQuery,控制台将输出“function”。否则,它将输出“undefined”。可以在here找到将jQuery添加到页面的步骤。

一旦确认jQuery已正确加载到页面上,您就必须更正用于访问所需元素的CSS选择器。

$(".a.follow")表示“选择所有同时具有'a'和'跟''类的元素。

<div class="a follow"></div>

相反,您的选择器应为$("a.follow"),这意味着“选择所有具有'跟随'类的''类型元素。”

<a class="follow"></a>

答案 2 :(得分:1)

在我的情况下,解决方案是在我的浏览器中关闭元素检查器! :)

答案 3 :(得分:0)

在我的情况下,jquery和另一个库之间存在冲突,因此我必须在调用主脚本之前在脚本中实现jQuery.noConflict();

您可以阅读有关jquery冲突here

的更多信息