首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索元素的textnode,而不使用Jquery获取降序元素的textnode?

如何检索元素的textnode,而不使用Jquery获取降序元素的textnode?
EN

Stack Overflow用户
提问于 2010-02-27 00:45:53
回答 3查看 187关注 0票数 1

<a href="#">Domain name<span class="value">2</span></a>

我只想检索文本“域名”。

我尝试过使用$('a').text(),但这也会得到降序跨度标记内的文本。有没有办法只选择A标签中的第一个文本节点?

我想不出是怎么回事。

.contents(' not :(span)')也不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-27 00:54:31

您可以只使用DOM方法:

代码语言:javascript
复制
var el = document.getElementById("your_element_id");
var child, textBits = [];
for (var i = 0; i < el.childNodes.length; ++i) {
    child = el.childNodes[i];
    if (child.nodeType == 3) {
        textBits.push(child.nodeValue);
    }
}
window.alert( textBits.join("") );
票数 1
EN

Stack Overflow用户

发布于 2010-02-27 01:06:43

我找到了一个办法!

$('a').get(0).firstElementChild.firstChild.wholeText;

票数 0
EN

Stack Overflow用户

发布于 2010-02-27 01:20:20

根据我对this问题的回答,这对你来说应该是可行的。this.nodeType == 3确定它是一个文本节点。目前,这将获取所有文本节点的文本(但适用于您的示例)。如果在span之后有文本节点,则必须对其进行修改以仅获得第一个节点。

代码语言:javascript
复制
var text = $('a') 
    .contents() 
    .filter(function() { 
        return this.nodeType == 3;
        //return this.nodeType == Node.TEXT_NODE;  this works unless using IE 7
    })
    .text(); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2343204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档