在html中,如何计算innerHTML中显示的真实字符?
例如,在<strong>Hi</strong>
中,字符数应为2,而不是19。
我尝试了两种不起作用的方法:
str.length
- 这将包含<>
个字符。getElementById
- 这将包含<>
个字符:我尝试如下:
elem_output = document.getElementById("example_id");
elem_output.innerText.length;//1st
elem_output.textContent.length;//2nd
答案 0 :(得分:4)
我不知道代码中哪个元素有#example_id
,但element.innerText.length
应该有效。
修改:其他答案建议使用textContent
代替innerText
。我认为,根据OP的实际需要,一个或另一个(甚至innerHTML
,它出现在问题的标题中)可能是合适的。所以,我建议仔细阅读文档中这些属性之间的差异:
编辑2 :OP的问题是在innerHTML 中说真实字符显示,所以我选择{ {1}}自:
innerText
知道样式,不会返回隐藏元素的文本,而innerText
会。{/ p>
textContent
&#13;
var tag = document.getElementById('test');
console.log(tag.innerText.length)
&#13;
答案 1 :(得分:1)
var html='<div>div1</div><div>div2</div>';
console.log(
html.replace(/<(?:.|\n)*?>/gm, '').length
);
答案 2 :(得分:1)
试试这个
var p=document.createElement("p")
p.innerHTML="<strong>Hi</strong>"
alert(p.querySelector("strong").innerHTML.length)
&#13;
如果您在html中有数据,那么您也可以尝试按照
alert(document.getElementsByTagName("strong")[0].innerText.length);
//Or
alert(document.getElementsByTagName("strong")[0].innerHTML.length);
//Or
alert(document.querySelector("strong").innerHTML.length);
//Or
alert(document.querySelector("strong").innerText.length);
&#13;
<strong>Hi</strong>
&#13;
答案 3 :(得分:1)
我想你的文字中可能会有很多不同的html标签,所以有三种做事方式
如果您需要使用正则表达式来过滤特定代码,那么 innerHTML 将是您获得所需内容的方式。
var exampleid = document.getElementById('example_id').innerHTML;
exampleid = exampleid.replace(/<[^>]strong>/g, "");
alert(exampleid.length + ' characters.');
<div id="example_id">hi, <strong>I'm bold and my tags are ignored</strong> while <i>I'm Italic but my tags are counted</i>.</div>
请参阅:Regular Expression: exclude html tags from "content"
如果您希望插入所有代码,请使用innerText
或textContent
。
innerText :
var exampleid = document.getElementById('example_id').innerText.length;
alert(exampleid + ' characters.');
<div id="example_id">hi, <strong>I'm bold</strong> while <i>I'm Italic</i>.</div>
textContent (谨慎textContent W3C标准,IE&lt; 9)不支持:
var exampleid = document.getElementById('example_id').textContent.length;
alert(exampleid + ' characters.');
<div id="example_id">hi, <strong>I'm bold</strong> while <i>I'm Italic</i>.</div>
详细了解所有这些之间的差异:Difference between innerText and innerHTML in javascript
答案 4 :(得分:1)
<strong>Hi</strong>
document.getElementsByTagName("strong").innerText.length;
答案 5 :(得分:0)
您想使用https://groups.google.com/forum/#!topic/python-tornado/K8zerl1JB5o。
var element = document.querySelector('#some-element');
var length = element.textContent.length;
这是最简单优雅的解决方案。