Как остановить jQuery от возврата табуляции и пробелов из форматированного кода в .html () .val () .text () и т. Д. - PullRequest
2 голосов
/ 07 апреля 2010

У меня есть HTML-таблица:

<table><tr>
 <td>M1</td>
 <td>M2</td>
 <td>M3</td>
 <td>M4</td>
</tr></table>

и простой скрипт jQ:

$('td').click(function(){ alert( $(this).html() ); });

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

Так что, если html:

     <td>
                     M1         

             </td>

тогда alert () дает мне все табуляции и возвраты и пробелы:

Javascript Alert http://bit.ly/9B0Xon

Что я могу сделать, чтобы получить ТОЛЬКО текст без вкладок и пробелов? Я пытался .html (), .val (), .text () безрезультатно. Спасибо!

Ответы [ 3 ]

4 голосов
/ 07 апреля 2010

jQuery имеет встроенную функцию обрезки, $.trim(), вы можете использовать ее следующим образом:

$('td').click(function() {  alert( $.trim($(this).html()) ); });
2 голосов
/ 07 апреля 2010

Ник и Дарин опубликовали отличный способ обрезать пустое пространство от начала и конца содержимого, но если у вас много пустого пространства в середине, скажите это в качестве примера:

<div>
             M1
                                                  M2
     </div>

Вы можете обрезать все пробелы, используя эту комбинацию:

$('div').click(function() {
 var html = $.trim($(this).html().replace(/(\s+)/g,' '));
 alert(html);
})
1 голос
/ 07 апреля 2010

Вы можете обрезать строку:

String.prototype.trim = function () {
    return this.replace(/^\s*/, '').replace(/\s*$/, '');
};

и используйте его так:

$('td').click(function() { 
    var html = $(this).html().trim();
    alert(html); 
});
...