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

时间:2012-02-01 05:22:04

标签: javascript html character innerhtml

我正在尝试从innerHTML获得我所获得的角色的长度,并且它有点归根结底,但似乎找不到更有效的方式,因为数据在我试图使用滑块来获得更低的值和更高的值。

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

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

var larr=lvalue.split(" ");

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

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

4 个答案:

答案 0 :(得分:4)

我认为它会是这样的:

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(' ');

答案 1 :(得分:1)

这可能是由前一个或前一个空格引起的。

尝试修剪额外的空格:

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

var larr=lvalue.split(" ");

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果有像我这样的人不想使用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的部分。 在它之后,我创建了一个&#34;做某事&#34;如果元素的长度等于零。

考虑

它有效,但是如果你有空格或换行符,代码就不会将其视为&#34;空&#34; ...