问题描述
我正在发出一些ajax请求,该请求返回整个HTML页面作为响应。我需要从该页面中获取一些数据,尤其是特定value
的{{1}}。
最好的方法是什么?
我的想法:
- 找到
<input>
标签结束和<body>
开始的位置,将里面的所有东西抓到字符串中,然后通过</body>
放到某个容器中。 - 自制解析器:找到我需要的id的字符位置,将响应字符串转换为数组,设置读取位置等于id字符的位置,移至
innerHTML
字符开始的位置,读取到缓冲区直到新的"
来了。
如果有一个使用经典DOM语法的框架来做到这一点,那将是完美的,例如:
"
解决方法
一个非常优雅的解决方案是使用DOMParser。
const parser = new DOMParser()
const virtualDoc = parser.parseFromString(htmlString,'text/html')
然后,像对待任何DOM元素一样对待virtualDoc
,
virtualDom.getElementById('someid').value
,
不知道它有多好,只是将整个响应与<html>
和其他标签一起传递给某些容器即可。然后,只需要打电话
document.getElementById("needid").value