任何给定的DOM元素的Javascript字数
栏目: JavaScript · 发布时间: 7年前
内容简介:http://stackoverflow.com/questions/765419/javascript-word-count-for-any-given-dom-element
我想知道是否有办法计算一个div内的单词.说我们有一个像这样的div:
<div id="content"> hello how are you? </div>
然后让JS函数返回一个整数4.
这可能吗?我已经用表单元素做了这件事,但似乎不能为非格式元素做.
有任何想法吗?
G
:
var count = document.getElementById('content').innerHTML.split(' ').length;
如果div可以在其中有HTML标签,那么您将不得不遍历其子查找文本节点:
function get_text(el) {
ret = "";
var length = el.childNodes.length;
for(var i = 0; i < length; i++) {
var node = el.childNodes[i];
if(node.nodeType != 8) {
ret += node.nodeType != 1 ? node.nodeValue : get_text(node);
}
}
return ret;
}
var words = get_text(document.getElementById('content'));
var count = words.split(' ').length;
这与jQuery库用于实现其
text()
功能的效果相同. jQuery是一个非常棒的库,在这种情况下不是必需的.但是,如果您发现自己在执行DOM操作或AJAX,那么您可能需要查看.
编辑:
正如Gumbo在评论中所指出的,我们分割上面的字符串的方式将会将两个连续的空格作为一个单词计算.如果你期望这样的事情(即使你不这样做),最好是通过分割正则表达式而不是简单的空格字符来避免这种情况.记住这一点,而不是做上面的分裂,你应该做这样的事情:
var count = words.split(/\s+/).length;
唯一的区别在于我们传递给 split 功能.
http://stackoverflow.com/questions/765419/javascript-word-count-for-any-given-dom-element
以上所述就是小编给大家介绍的《任何给定的DOM元素的Javascript字数》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Is Parallel Programming Hard, And, If So, What Can You Do About
Paul E. McKenney
The purpose of this book is to help you understand how to program shared-memory parallel machines without risking your sanity.1 By describing the algorithms and designs that have worked well in the pa......一起来看看 《Is Parallel Programming Hard, And, If So, What Can You Do About 》 这本书的介绍吧!