我正在尝试解析一些 html,其中有重复的代码行,例如:
<a>This is <span>some text</span> but its <span>not grabbing the span</span> content</a>
所以我循环遍历该对象并提取它:
object.a[i].text();
但它只是返回
"This is but its content"
如何同时抓取子节点内的文本(全部作为一个字符串)?
干杯
最佳答案
我不知道 E4X,但我可以假设纯 JavaScript 可以吗?
textContent
doesn't seem to have great compatibility for IE prior to version 9 。当 textContent
可用时,此功能有效。不过我没有 IE8,所以我无法用它进行测试,但这应该也可以。
var obj = (!object.a[i].innerText) ? object.a[i].textContent : object.a[i].innerText;
<小时/>
这适用于客户端实现,但由于它不适用于您的实现,我想您将需要一些更具体的设置;不幸的是我在那里无能为力。不过,我会再做一次纯 JS 尝试。这会迭代object.a[i]的每个子节点,确定它是textNode还是elementNode,并分别提取数据或innerHTML。
var doesThisWork = '';
var children = object.a[i].childNodes;
for(x in children){
doesThisWork += (children[x].nodeType === 1) ? children[x].innerHTML : children[x].data;
}
<小时/>
我将保留 jQuery 版本:
object.a[i].contents().text();
关于Javascript E4X - 返回节点及其子节点的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697287/