0

所以我试图在 Chrome 中创建一个扩展(我正在做的一个项目的原型),它针对<div>任何网页的所有标签,隐藏它们,或者在用户单击鼠标之前不显示它们(进一步解释以下)。所以在浏览器中输入一个 url 会产生一个白页。人点击,第一个<div>出现(可能是桅杆头或菜单)。用户再次单击,第二个<div>出现。

我已经到了可以隐藏或显示所有 ' 的地步<div>(显而易见的简单部分),但我不确定如何定位每个,因为每个网站在仍然使用<div>标签的同时都有不同的 id。这是我最需要帮助的。

这是称为 Web Crank 的更宏大操作的一部分。它只是一个控制网页加载速度的物理曲柄。每次您将曲柄旋转一圈,就会<div>加载网页的一个部分(第一个部分)。你走得越快,页面加载得越快。

我希望这足够清楚。在这方面我是新手,但我过去做过一些小的编码,这没什么大不了的。

谢谢你的帮助!

4

3 回答 3

3

只使用没有任何库的 DOM,迭代这个:

document.getElementsByTagName("div")

为您提供<div>页面上的所有内容。要遍历它们,请使用 for 循环:

var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
  /* stuff */
}

在 jQuery 中(你可能不应该在 Chrome 插件中使用它......):

$("div").each(function(i) { /* whatever */ });

您基本上想要做的是遍历所有<div>s 并将它们全部隐藏,然后当您启动曲柄时,调用一个迭代器,该迭代器会通过并重新添加东西。可能我要做的是创建一个 FIFO 队列(像这样? ) 'to-be-cranked' 元素,当你隐藏它们时,然后当曲柄操作触发时(无论如何你这样做),开始将项目从队列中拉出并再次显示它们。

作为一个附带问题,为什么<div>s 虽然而不是所有块级元素?您可能还想搜索<div><p><blockquote><ol><ul><dl>元素<table>

于 2010-06-07T02:12:49.673 回答
0

如果您可以获取页面上的每个 div,只需将它们放在一个数组中,现在您就可以索引它们了。

于 2010-06-07T02:04:35.680 回答
-1

如果您可以使用jQuery ,请使用.each关键字。这将允许您遍历集合并收集有关它们的数据,显示/隐藏等。

于 2010-06-07T02:02:28.490 回答