<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 тоже отлично.
Если вы используете плагин jQuery. Это проще.
$.trim(stringHere);
Таким образом, ваш код будет
$.trim($('.name').text());
В коде значение $('.name').text()
будет строкой, предоставленной методу, который нужно обрезать. Я создал для вас пример скрипта, чтобы проверить, как он работает.
http://jsfiddle.net/afzaal_ahmad_zeeshan/dJ9SA/
Для получения дополнительной информации: http://api.jquery.com/jQuery.trim/
64
. Я думаю это из-за возврата кареты? Вот как выглядит строка: outerHTML: "<div class="name">↵ Barrel Basket↵ </div>"
Я думаю, вы уже там:
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
console.log(productnames[0].innerHTML.trim().length)
. Функцияtrim
возвращает новую строку. Просто вызываяproductnames[0].innerHTML.trim();
ничего не делать с возвращаемым значением не имеет никакого эффекта.