【发布时间】:2014-02-15 18:15:17
【问题描述】:
我正在通过 java 脚本加载网页,目的是从该网站的 HTML 源代码中提取单个字符串值,以便在我的脚本中的其他地方使用。所以网站有多个行容器遵循这个基本格式:
<tr>
<td align="left">
<span class="criteria1">
<script>document.write("INFO I WANT");</script>INFO I WANT
</span>
</td>
<td align="left"><a href="http://www.example.com/1234/" title="Directory Criteria 1234">1234</a>
</td>
<td align="left">
<div class="criteria2" data-value="100" title="1642"></div>
</td>
<td align="left">
<span class="criteria3" style="font-weight:bold; font-size:10px;">North</span>
</td>
</tr>
该站点有许多我不感兴趣的行容器,以及一些我感兴趣的。因此,我想检查每个行容器以查看是否满足以下条件(它们在我上面示例):
- 必须有一个带有 class="criteria1" 的 span 元素
- title= 属性值中的某处必须有一个带有“1234”的锚标记
- 必须有一个 div 元素为 class="criteria2" AND data-value="100"
- 在我的示例中看到的任何字段中都必须有另一个具有 class="criteria3" 和 "North" 的 span 元素
如果满足这些条件,我想提取“INFO I WANT”字符串,并将其保存到脚本中的变量中。我们可以从脚本标签内或从它出现在标签之后的位置拉取它...这是什么,这个特定 span 标签的 innerHTML 内容?
正如您从这一点收集到的,我是 javascript 的新手,所以如果其中任何内容愚蠢、容易和/或不清楚,我提前道歉。我已经进行了很多挖掘以试图弄清楚如何做到这一点,但是经过一天半的测试而几乎没有进展,我已经达到了某种临界点。显然,它需要一个循环来遍历每个容器,然后(我猜)使用 getElementsBy 方法来检查条件。
请原谅我缺乏正规培训/词汇,并提前感谢您的帮助。只是通过拖钓 StackOverflow,你们都已经在其他企业中帮助了我一个伟大的交易!请务必纠正上述术语的任何误用。知道表达这些想法的正确方式将极大地帮助我在未来的研究中找到我的问题的答案。
【问题讨论】:
-
DOM 的复杂查询正是 jQuery 的用途。你可以使用 jQuery 还是需要 vanilla Javascript?
-
@blurd,也许 jquery 是最简单最直接的方法,虽然我不是特别熟悉它。我将在下面查看您的建议并进行一些测试。看起来很有希望。感谢您提供快速(彻底)的反馈。我会回来报告...
标签: javascript html dom tags