обрезка строки внутри div

0
<div class="name" >
product name
</div>

Когда я вычисляю длину строки имени product name используя следующий код:

var productnames = document.getElementsByClassName('name');
productnames[0].innerHTML.trim();
console.log(productnames);
console.log(productnames[0].innerHTML.length);

Моя функция прототипа отделки

String.prototype.trim = function() {
       return this.replace(/^\s+|\s+$/g,"");
};

Результат - 64. Однако, если я запустил тот же код:

<div class="name" >product name</div>

Результат - 13.

Есть ли способ удалить пробелы до и после строки innerHTML чтобы я оставил только имя продукта без удаления обратных пространств? решение jQuery тоже отлично.

  • 0
    api.jquery.com/jQuery.trim
  • 0
    Сделайте console.log(productnames[0].innerHTML.trim().length) . Функция trim возвращает новую строку. Просто вызывая productnames[0].innerHTML.trim(); ничего не делать с возвращаемым значением не имеет никакого эффекта.
Теги:

2 ответа

1

Если вы используете плагин jQuery. Это проще.

$.trim(stringHere);

Таким образом, ваш код будет

$.trim($('.name').text());

В коде значение $('.name').text() будет строкой, предоставленной методу, который нужно обрезать. Я создал для вас пример скрипта, чтобы проверить, как он работает.

http://jsfiddle.net/afzaal_ahmad_zeeshan/dJ9SA/

Для получения дополнительной информации: http://api.jquery.com/jQuery.trim/

  • 0
    это произвело тот же самый ответ, который является 64 . Я думаю это из-за возврата кареты? Вот как выглядит строка: outerHTML: "<div class="name">↵ Barrel Basket↵ </div>"
  • 0
    jQuery удалит только пробелы. не любой другой символ из строки. Он не удалит символ возврата каретки.
0

Я думаю, вы уже там:

var productnames = document.getElementsByClassName('name'),
    html = productnames[0].innerHTML.trim(), // returns the trimmed string
    len = html.length; // gets the length of the string

console.log(html); // "product name"
console.log(len);' // 12

Ещё вопросы

Сообщество Overcoder
Наверх
Меню