javascript - 通过 JavaScript 点击链接

标签 javascript

我正在寻找如何使用 JavaScript 单击我的页面上的链接。在我的页面中,我显示了数据库中的每条记录。和一个“显示”链接,右键单击它将展开并详细显示该行。我想一次展开所有行。是否可以像这样点击 Javascript 中的链接?

最佳答案

您可以循环浏览所有 anchor ,然后单击它们,是的:

var myLinks = document.getElementsByTagName("a");
for (var i = 0; i < myLinks.length; i++) {
  myLinks[i].click();
}

请注意,这将点击页面上的每个链接。您可以通过浏览位于链接外部的父容器来更多地关注一组特定的链接:

var myLinks = document.getElementById("container").getElementsByTagName("a");

这将获取元素内 id 值为“container”的所有链接。

更新2:

在评论中,您想知道如何仅单击 ID 以特定字符串开头的链接。让我们看一下将其实现到上述代码中的几种方法:

使用 jQuery,您可以点击所有 id='reviews-show...' 链接,如下所示:

$("a[id^='reviews-show']").click(); // simple, eh?

此选择器中的 ^= 以正则表达式样式进行匹配,询问字符串是否以“reviews-show”开头,这将仅检索 a 标签,此声明为真。

如果您想坚持使用常规 JavaScript,我们可以修改我们的第一个代码块来检查子字符串:

var myLinks = document.getElementsByTagName("a");
for (var i = 0; i < myLinks.length; i++) {
  currentlink = myLinks[i];
  if (currentlink.id.substring(0,12) === "reviews-show") {
    currentlink.click();
  }
}

更新:

显然jQuery正在腐 eclipse 我的思想,我的解决方案无法按原样工作。如果你不介意使用 jQuery(你会喜欢它),你可以走这条路:

$("a").click();           //clicks all links on page
$("#container a").click();//clicks all links within element having id 'container'

如果您想远离框架,请尝试将此原型(prototype)扩展添加到代码顶部,这将使我原来的答案足够:

HTMLElement.prototype.click = function() {
  if (document.createEvent) {
    var evt = this.ownerDocument.createEvent('MouseEvents');
    evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
    this.dispatchEvent(evt);
  } else if (this.fireEvent) {
    this.fireEvent("onclick");
  }
}

来源:http://www.barattalo.it/2009/11/18/click-links-with-javascript/

关于javascript - 通过 JavaScript 点击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2260279/

相关文章:

javascript - Firebase set() promise 停留在挂起状态

javascript - 在 JavaScript 中更改字符串中的字符

javascript - 我可以使用服务帐户对我网站上的用户进行身份验证,使他们能够查看我的 Google 云端硬盘中的选定文件吗?

JavaScript click() 方法仅在 Chrome 扩展程序中有效一次

javascript - 触摸滚动 div 标签?

javascript - react : How can i access a attribute within a <td> tag

javascript - 为什么我的单选按钮没有在 react 中切换状态?

计算器中的 Javascript 乘法问题

javascript - 如何动态创建正则表达式以在 .match Javascript 中使用?

javascript - CSS 显示 :block property error or behaving differently