Javascript 与文本的innerHTML等效

Javascript 与文本的innerHTML等效,javascript,dom,textnode,Javascript,Dom,Textnode,可能重复: 我正在寻找与innerHTML等价的文本,即 <p>Hello, <i>World!</i></p> 你好,世界 然后innerText(p)应该返回Hello,World 注意:我知道jQuery的text()函数。我想知道它是如何实现的,这样我就可以在某些节点上进行特殊处理,比如插入额外的空格。下面是getText()的源代码:摘自问题: 以下是getText()的来源:摘自问题: 使用innerText属性而不是innetH

可能重复:

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

<p>Hello, <i>World!</i></p>
你好,世界

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


注意:我知道jQuery的
text()
函数。我想知道它是如何实现的,这样我就可以在某些节点上进行特殊处理,比如插入额外的空格。

下面是getText()的源代码:摘自问题:


以下是getText()的来源:摘自问题:


使用innerText属性而不是innetHTML

例如

<html>
<body>
<p id="myP">Sample Text inside a <b>p</b> element <a href="#"> this is a link </a></p>
<button onclick="alert(myP.innerHTML);">InnerHTML</button>
<button onclick="alert(myP.innerText);">InnerText</button>
</body>
</html>

p元素中的示例文本

InnerHTML 标记模板
使用innerText属性而不是innetHTML

例如

<html>
<body>
<p id="myP">Sample Text inside a <b>p</b> element <a href="#"> this is a link </a></p>
<button onclick="alert(myP.innerHTML);">InnerHTML</button>
<button onclick="alert(myP.innerText);">InnerText</button>
</body>
</html>

p元素中的示例文本

InnerHTML 标记模板
这个怎么样

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 getInnerText=函数(元素){
var节点=element.childNodes,
i=0,
len=节点长度,
文本='';
对于(;i
然后:
var innerText=getInnerText(myElement)

这个怎么样

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 getInnerText=函数(元素){
var节点=element.childNodes,
i=0,
len=节点长度,
文本='';
对于(;i
然后:
var innerText=getInnerText(myElement)


远程相关虽然这与问题不完全相同,但肯定足够接近。远程相关虽然与问题不完全相同,但肯定足够接近。我不确定
text
参数。我觉得你复制了部分文本内容。你是对的。现在,这应该可以完成任务了,我不确定
text
参数。我觉得你复制了部分文本内容。你是对的。现在,这应该可以了