HtmlDocument中如何通过getAttributeByID()获取属性超链接并存储为String
元素超链接提取实现方案
- 首先澄清一个常见的API误区:原生DOM接口中不存在
getAttributeByID()方法,日常使用的是两个独立的操作逻辑:getElementById("目标id"):根据传入的id值定位对应的DOM元素对象getAttribute("属性名"):在已获取的DOM元素对象上,读取对应属性的原始字符串值
- 针对id为
ca-edit的目标节点,提取超链接的正确操作步骤:- 该id对应的节点是列表项标签,本身不携带超链接属性,真正存储超链接的是节点内部嵌套的
<a>子元素 - 通过
getElementById("ca-edit")拿到外层节点后,先定位到它内部的<a>子元素,再调用getAttribute("href"),返回值直接就是String类型的超链接原始值,可直接存入字符串变量持久化
- 该id对应的节点是列表项标签,本身不携带超链接属性,真正存储超链接的是节点内部嵌套的
- 实操避坑提示:
- 不要直接在外层
ca-edit节点上读取href属性,无法获取到有效结果 - 优先使用
getAttribute("href")取值,而非直接读取元素的href动态属性:前者返回的是HTML源码中写入的原始属性字符串,后者会被浏览器自动拼接域名解析为绝对路径,会破坏原始值的准确性 - 所有通过
getAttribute读取的属性值本身就是字符串类型,不需要额外做类型转换
- 不要直接在外层
内容的提问来源于stack exchange,提问作者Darp mosh
相关产品推荐
相关产品推荐

