Как я могу получить длину innerHTML (всего символов) в JavaScript? - PullRequest
4 голосов
/ 01 февраля 2012

Я пытаюсь получить длину символов, которые я получаю, от innerHTML, и это своего рода прибегает к крайней мере, но, похоже, не могу найти более эффективный способ, поскольку данные находятся внутри слайдера, который Я пытаюсь использовать, чтобы получить более низкое значение и более высокое значение.

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

тогда я плюю строку в пробелы:

var larr=lvalue.split(" ");

Значение innerHTML выглядит примерно так: «2413dsk 134dfa134».

И когда я использую larr[0].length, я получаю 1, когда мне нужно 7. Есть ли решение?

Ответы [ 4 ]

4 голосов
/ 01 февраля 2012

Я думаю, что это будет выглядеть примерно так:

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 голос
/ 01 февраля 2012

Это может быть вызвано предыдущим или начальным пробелом.

Попробуйте обрезать лишние пробелы:

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

var larr=lvalue.split(" ");
0 голосов
/ 18 февраля 2018

Если есть кто-то вроде меня, который не хочет использовать 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

Довольно просто, я только что создал раздел и присвоил ему идентификатор. Этот идентификатор будет использоваться для вызова ее в нашем javascript.

В JavaScript

В var fooI я назвал раздел, которому дал идентификатор. После этого я создал функцию, которая «делает что-то», если длина элемента равна нулю.

Вопросы

Это работает, но если у вас пробел или разрыв строки, код не будет считать его "пустым" ...

0 голосов
/ 01 февраля 2012

Я не видел никаких проблем с вашим кодом. Я запускаю тест здесь: http://desdegdl.com/lval.html Возможно, у вас есть один или несколько пробелов в начале внутреннего кода lval.

...