获取元素的内部文本

时间:2014-10-03 11:14:19

标签: javascript

我正试图找到一种方法来获取文本跟随元素,在JavaScript中,但没有经典的解决方法。我的标记是:

<div class='el'>
  <span class='fa fa-user'></span> Dollynho
</div>

我只想要“Dollynho”这个词,但没有分割.el的innerHTML。我可以这样做:

var xs = document.getElementsByClassName('el')[0]
console.log(xs.split('>')[2].trim()) # => "Dollynho"

我能以更干净的方式做到吗? (No-regex,请)

提前致谢!

5 个答案:

答案 0 :(得分:1)

var xs = document.getElementsByClassName('el')[0];
xs.innerText;
在Firefox中

,您可能需要使用textContent

答案 1 :(得分:1)

遍历所有childNodes并获取text类型的子节点的内容,然后删除spureous \ n

var childNodes = document.getElementsByClassName('el')[0].childNodes;

var textContent = "";
for(var i=0; i<childNodes.length; i++) {
    if(childNodes[i].nodeType==3  ) {
        textContent+=childNodes[i].data;
    }
}
textContent= textContent.replace(/\r?\n|\r/g,"");

小提琴:http://jsfiddle.net/53rx1t0o/11/

答案 2 :(得分:0)

如果您想要检索.el类的html,请在脚本代码中使用它:

var x = $(“。el”)。html();

答案 3 :(得分:0)

您可以使用jquery

获取文本
$(".el").text()

答案 4 :(得分:0)

根据您的IE支持需求,您可以使用textContent https://developer.mozilla.org/en-US/docs/Web/API/Node.textContent

var xs = document.getElementsByClassName('el')[0]
console.log(cs.textContent)  # => "Dollynho"

IE有.innerText,其工作方式类似,但有一些注意事项(在上面的textContent页面上描述)

http://msdn.microsoft.com/en-us/library/ie/ms533899(v=vs.85).aspx