等同于innerHTML的文本 [英] Equivalent of innerHTML for text

查看:149
本文介绍了等同于innerHTML的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:
内部的jQuery的.text()如何工作?

Possible Duplicate:
How does jQuery’s .text() work, internally?

我正在寻找等价于innerHTML的文本,即

I'm looking for the text equivalent of innerHTML, i.e.

<p>Hello, <i>World!</i></p>

然后innerText(p)应该返回Hello, World!.

注意:我知道jQuery的text()函数.我想知道它是如何实现的,因此我可以在某些节点上进行特殊处理,例如插入额外的空白.

Note: I'm aware of jQuery's text() function. I want to know how it is implemented so I can do special handling on some nodes, like inserting extra white space.

推荐答案

如何?

var getInnerText = function (element) {
    var nodes = element.childNodes,
        i = 0,
        len = nodes.length,
        text = '';
    for (; i < len; i++) {
        if (nodes[i].nodeType === 3 || nodes[i].nodeType === 4) {
            // 3 means text node, 4 means cdata
            text += nodes[i].nodeValue;
        } else {
            text += getInnerText(nodes[i]);
        }
    }
    return text;
};

然后:var innerText = getInnerText(myElement);

jsfiddle

这篇关于等同于innerHTML的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆