【问题标题】:Click all buttons on page with same class Javascript单击具有相同类 Javascript 的页面上的所有按钮
【发布时间】:2016-03-17 14:28:01
【问题描述】:

我正在尝试单击带有class "btn btn-primary UnFollowUser" 的页面上的所有按钮。

这是我尝试使用的脚本

var buttons = document.getElementsByName('UnFollowUser');

for(var i = 0; i <= buttons.length; i++)  
   buttons[i].click();

但这会引发错误:

VM336:5 Uncaught TypeError: Cannot read property 'click' of 未定义(…)(匿名函数)@ VM336:5InjectedScript._evaluateOn @ VM158:878InjectedScript._evaluateAndWrap @ VM158:811InjectedScript.evaluate @ VM158:667

有什么想法吗?

【问题讨论】:

  • 你是说getElementsByClassName('UnFollowUser');
  • 你在用jQuery吗?
  • @itsgoingdown 啊,解决了!

标签: javascript html button


【解决方案1】:

您使用的是 getElementsByName 而不是 getElementsByClassName

 var buttons = document.getElementsByClassName('UnFollowUser');

 for(var i = 0; i < buttons.length; i++)  
     buttons[i].click();

【讨论】:

  • 你看到问题中提到了 jQuery 吗?您甚至没有在回答中提及它。
  • instagram massunfollow all 有什么吗?我们如何一次取消关注所有这些?
  • @Kain for 错误,应该是(var i = 0; i &lt; buttons.length; i++)
  • 如果点击按钮后类 UnFollowUser 被移除了怎么办?对象的长度会改变。
【解决方案2】:

由于某种原因,我遇到了类似的错误(是的,我使用的是 getElementsByClassName)。出于某种原因,使用“while (buttons.length != 0)”而不是“for (var i = 0; i

 var buttons = document.getElementsByClassName('nameOfClass');

 while(buttons.length != 0)  
     buttons[i].click();

我相信这样做的原因是由于某种原因,每次按钮被销毁时按钮的数组都会更新:所以当循环在 5 个按钮中的第 5 个时,i = 5,但buttons.length = 5 所以它会提前终止。

【讨论】:

  • 欢迎来到 StackOverflow。请添加一个工作代码示例并解释为什么这不会创建无限循环。
  • @JeroenHeier 谢谢!进行了更改。
猜你喜欢
  • 1970-01-01
  • 2018-02-28
  • 2014-09-10
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多