Как удалить пробел при захвате текста с помощью jQuery?

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

Здесь HTML, с которым я должен работать, script, так как у меня есть его и копия вывода.

HTML

<div class="field field-type-text field-field-email">
  <div class="field-item">
    [email protected]    </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%[email protected]%20%20%20%20">
    [email protected]    </a></div>
</div>

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

Ответ 1

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

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

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

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

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

Ответ 2

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

str.trim()

В IE8 он не работает. Если вам нужно поддерживать старые браузеры, используйте Tuxmentat или ответ Павла.

Ответ 3

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

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

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

Ответ 4

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