Javascript:使用dom加载的页面进行匹配
Javascript: match using dom loaded page
我正在尝试使用Chrome console
从谷歌搜索结果中获取所有链接。
首先,我想获得dom加载的源代码。我尝试了以下代码。
var source = document.documentElement.innerHTML;
现在,当我在控制台源代码中键入source
时,它会显示正确的dom加载源代码。但如果我运行alert(source);
,它会显示页面的默认html源。
所以问题是当我运行低于代码
source.match(/class="r"><a href="(.*?)"/);
它返回null,因为变量source
在加载dom之前具有源代码。
您可以使用DOM API(即getElementsByTagName
)来查找页面中的所有a
标记。看看:
var anchors = document.getElementsByTagName('A');
var matchingHrefs = Array.prototype.slice.call(anchors).filter(function(a) {
return a.className == 'r';
}).map(function(a) {
return a.href;
});
<a href="#first" class="r">A</a>
<a href="#second" class="d">B</a>
<a href="#third" class="r">C</a>
Array.prototype.slice.call
调用将节点列表转换为常规数组。
可能需要将/g
标志添加到正则表达式中以进行全局匹配。
像这样:yourHtml.match(/href="([^"]*")/g)
相关文章:
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- Angular 是否使用 DOM 差异,或者它必须“重新渲染”每个列表项
- 如何在 Knockout.js 中更新可观察数组后立即使用 DOM 容器
- 使用DOM中的信息创建一个控制器/服务来持久化数据
- 使用DOM时,什么也没有出现
- 从网页获取数据的更好方法,而不是使用DOM和HTML元素
- JavaScript/jQuery使用DOM识别隐藏的图像
- 使用dom minipopulation更改图像大小
- 使用DOM树中的某种节点号进行元素搜索
- 使用DOM创建并填充一个带有javascript数组值的复选框列表
- 使用DOM javascript包含文本和图片的按钮
- 使用DOM将单词拆分为字母的最佳方式
- C#WebBrowser控件-使用DOM创建和修改javascript变量,然后使用Applet读取它
- 如何在 javaScript 中使用 DOM 自动递增编号结果
- 如何在网页中嵌入隐藏数据并使用 DOM 恢复它
- 导入在火狐插件插件脚本中使用DOM对象的JS文件
- JavaScript 使用 DOM 和更改颜色
- 如何从特权代码使用 Dom 文件 API
- 使用 DOM 方法删除图像元素
- HowTo:使用 DOM 创建 DIV,无需 jQuery