如何在 JavaScript 中获取 innerHTML(总字符)的长度?

Posted

技术标签:

【中文标题】如何在 JavaScript 中获取 innerHTML(总字符)的长度?【英文标题】:How do i get the length of innerHTML (total characters) in JavaScript? 【发布时间】:2012-02-23 20:37:47 【问题描述】:

我正在尝试获取从 innerhtml 获得的字符长度,这是最后的手段,但由于数据位于滑块内,因此似乎找不到更有效的方法我正在尝试使用以获得较低的价值和较高的价值。

var lvalue=document.getElementById("lval").innerHTML;

然后我在空格中吐出字符串:

var larr=lvalue.split(" ");

innerHTML 值类似于“2413dsk 134dfa134”。

当我使用larr[0].length 时,我需要 7 时得到 1。有解决方案吗?

【问题讨论】:

larr[0]指的是拆分后的数组第一个元素的长度.. 你能发布一些代码吗?当我准确输入您在此处写的内容时,答案是 7(以 lvalue = "2413dsk 134dfa134"; 而不是 innerHTML 开头)。 滑块与 HTML5 滑块一样吗?您可能正在寻找document.getElementById('lval').value 而不是.innerHTML 【参考方案1】:

我认为它会是这样的:

var lvalue = document.getElementById("lval").innerHTML;
var larr = lvalue.split(' ');
var len = 0;

// For each iterates over the index of arrays
for(var i in larr)  
     len += larr[ i ].length // Acummulate the length of all the strings

或者你可以先计算空格,然后从总长度中减去它。

// Some people argue about extending the native objects
// but in this case I think this method is a natural fit.
String.prototype.count = function( character ) 
   var l = 0;
   // `this` refers to the string itself
   for(var c in this) n = this[ c ] === character ? ++n : n;
   return n;

然后像这样使用它:

var lvalue = document.getElementById("lval").innerHTML;

// Subtract total length minus the number of spaces
var len = lvalue.length - lvalue.count(' ');

【讨论】:

【参考方案2】:

这可能是由前面或前导空格引起的。

尝试修剪多余的空格:

var lvalue=document.getElementById("lval").innerHTML.replace(/^\s+/gi,'').replace(/\s+$/gi,'');

var larr=lvalue.split(" ");

【讨论】:

【参考方案3】:

我没有发现您的代码有任何问题。我在这里进行测试:http://desdegdl.com/lval.html 可能,lval 的内部 HTML 开头有一个或多个空格。

【讨论】:

【参考方案4】:

如果有像我这样不想使用 JQuery 的人,这里有一个 javascript 中的示例(仅限)...

文件

html 文件...

<!-- start body -->
<body>
  <!-- start section -->
    <section id="bar"></section>
  <!-- end section -->
</body>
<!-- end body -->

javascript 文件...

/* start - wut element do ya wanna get? */
foo = document.getElementById('bar');
/* end - wut element do ya wanna get? */

/* start function */
function isEmpty()
  if (foo.innerHTML.length === 0) 
      /* your code here */
  

/* end function */

我做了什么

在 HTML 中

很简单,我只是创建了一个部分并为其分配了一个 ID。此 ID 将用于在我们的 javascript 中调用她。

在 JavaScript 中

在 var fooI 中,我调用了我提供了 ID 的部分。 在它之后,我创建了一个函数,如果元素的长度为零,则“做某事”。

注意事项

它有效,但如果您有空格或换行符,代码将不会将其视为“空”...

【讨论】:

以上是关于如何在 JavaScript 中获取 innerHTML(总字符)的长度?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript之innerHTML

实时刷新

如何在Phonegap中刷新后保存输入数据

检查数组是不是唯一[重复]

如何在 JavaScript 中获取路由参数?

如何在Javascript中获取相对路径?