JQuery:获取标记内容,不包括嵌套标记

Dan*_*e B 5 jquery text nested css-selectors jquery-selectors

我有一些HTML如下:

<span id="A">Text I'm interested in
  <span id="B">Other crap I don't care about</span>
</span>
Run Code Online (Sandbox Code Playgroud)

我希望获得跨度"A"的文本内容,不包括任何嵌套标签(即上例中的跨度"B"的内容).我正在尝试获取文本内容,而不是HTML内容.另外,在我的特定情况下,我知道在任何其他标签之前,span A中总会有一些文本,但我也对这种约束较少的解决方案感兴趣.

我考虑过的简单但笨重的方法只是做$("#A").html()然后解析直到我点击未转义的"<",但感觉应该有一个更清洁的解决方案.

Eri*_*rik 6

我很确定没有内置方法可以做到 - 虽然你可以寻找一个插件,它可能存在.其他人发布了.text()方法(但删除了帖子),这将获得所有文本,减去标签,这意味着你将得到"文本我对其他垃圾感兴趣我不关心" - - 不是你想要的.

编辑

好吧,我觉得我对此很感兴趣所以我花了一些时间.这是解决方案:)

    copyOf = $('#A').clone();
    copysKids = copyOf.children();
    copysKids.remove();

    alert(copyOf.text());
Run Code Online (Sandbox Code Playgroud)

我们正在做的是克隆你试图从中获取文本的节点 - 我们不想对原始节点进行操作,因为这会改变页面.然后我们抓住所有子节点的集合,然后对它们进行核对.剩下的文字是你要找的文字.