function countChars(elm) {
if (elm.nodeType == 3) { // TEXT_NODE
return elm.nodeValue.length;
}
var count = 0;
for (var i = 0, child; child = elm.childNodes[i]; i++) {
count += countChars(child);
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
我试过传递这个函数的字符串countChars("hello"); 但那没用.我可以传递哪些元素的例子?
它期望引用DOM节点.根据函数的外观,它可以是文本node(nodeType == 3)或元素node(nodeType == 1).例如:
countChars(document.getElementById("someId"));
Run Code Online (Sandbox Code Playgroud)
以下HTML将导致上述调用返回5:
<span id="someId">Hello</span>
Run Code Online (Sandbox Code Playgroud)
如果参数是文本节点,则该函数返回组成该节点的字符数.如果参数是元素节点,则函数递归计算构成元素的后代文本节点的字符数.
以下HTML将导致上述调用返回10(包含子节点):
<div id="someId">Outer<span>inner</span></div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |