【发布时间】:2015-10-19 12:24:29
【问题描述】:
还有哪些其他方法可以以编程方式单击页面上的文本链接?该链接没有 ID,也不会有 ID。 示例链接如下所示:
<div unselectable="on" class="x-grid-cell-inner " style="text-align:left;">
<a href="file/files/now.pdf">Click Here</a>
</div>
这是我可以做到的一种方法,但想知道更多点击它的方法。
var els = document.getElementsByTagName('a');
for (var i = 0, l = els.length; i < l; i++)
{
var el = els[i];
if (el.text === 'Click Here')
{
el.click()
}
}
【问题讨论】:
-
The link does not have a ID and will not have one为什么不呢?这将是最有效的代码。遍历整个 DOM 树效率不高。如果您的相关 标记包含在定义更明确的区域中(例如,具有 ID 或类的 div),则您只能搜索 DOM 的那部分。 -
@Eric J. 但是如果我们有 10000 个 ID 怎么办。给他们每个人一个ID会更好。想一想:全局范围内将有 10000 个变量,因为每个具有 id 的元素都会创建 全局范围内的变量,其名称为它的 id。只需在控制台中输入
window['comment-51311540'],您就会看到带有评论的 tr 元素! :D -
@EricJ。更新的帖子。没有ID的原因是因为它是自动生成的下载文件的链接。
-
如果您有 10000 个 id,我会在您打算支持的最低端浏览器上仔细测试您的页面设计。而且使用 ID 仍然比扫描大量 DOM 更有效。
-
Reason no ID is because it is auto generated link for downloading a file然后也自动生成一个 ID 并将其传递给您的 JavaScript,或者也生成 JavaScript 的相关部分。
标签: javascript c# hyperlink