我正在寻找如何使用 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/