Javascript E4X - 返回节点及其子节点的文本?

标签 javascript e4x

我正在尝试解析一些 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 版本:

.contents :

object.a[i].contents().text();

关于Javascript E4X - 返回节点及其子节点的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697287/

相关文章:

javascript - 当有框架时div位于屏幕中心?

javascript - tui 编辑器 : how can i retrieve text (markdown\html)

javascript - 是否有 E4X 方法可用于将属性添加到 XML 元素?

JavaScript 的 Java ScriptEngine : using XML

javascript - 如何通过 javascript 强制链接到嵌入式播放器

javascript - 如果 angularjs 1.x 中显示了 ng 消息,我该如何禁用按钮?

javascript - 如何解析 JS Date 在所有浏览器中保持一致

xml - 在 AS3 中使用 E4X 读取非标准命名空间 XML?

xml - E4X:抓取带有命名空间的节点?

javascript - E4X浏览器支持