Как убрать пробел при получении текста с помощью jQuery? - PullRequest
177 голосов
/ 11 декабря 2008

Я хочу использовать jQuery, чтобы обернуть mailto: якорь вокруг адреса электронной почты, но он также захватывает пустое пространство, которое генерирует CMS.

Вот HTML-код, с которым мне нужно работать, скрипт, который у меня есть, и копия вывода.

HTML

<div class="field field-type-text field-field-email">
  <div class="field-item">
    name@example.com    </div>
</div>

jQuery JavaScript

$(document).ready(function(){
  $('div.field-field-email .field-item').each(function(){
    var emailAdd = $(this).text();
      $(this).wrapInner('<a href="mailto:' + emailAdd + '"></a>');
   });
 });

Сгенерированный HTML

<div class="field field-type-text field-field-email">
  <div class="field-items"><a href="mailto:%0A%20%20%20%20name@example.com%20%20%20%20">
    name@example.com    </a></div>
</div>

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

Ответы [ 4 ]

325 голосов
/ 11 декабря 2008

Используйте функцию replace в js:

var emailAdd = $(this).text().replace(/ /g,'');

Это удалит все пробелы

Если вы хотите удалить начальные и конечные пробелы только , используйте метод jQuery $ .trim:

var emailAdd = $.trim($(this).text());
98 голосов
/ 03 апреля 2013

Javascript имеет встроенную отделку:

str.trim()

Это не работает в IE8. Если вам требуется поддержка старых браузеров, используйте Tuxmentat's или Paul's answer.

67 голосов
/ 11 декабря 2008

На самом деле, в jQuery есть встроенная функция обрезки:

 var emailAdd = jQuery.trim($(this).text());

Подробнее см. здесь .

24 голосов
/ 29 марта 2012

str=str.replace(/^\s+|\s+$/g,'');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...