2013-07-07 4 views
0

Как я могу обернуть span вокруг чисел (и только чисел) в ячейках таблицы с «данными» класса, а не с символом $?Обтекание только номерами с помощью jQuery

Вот HTML разметка:

<table> 
    <tr> 
     <th>Description</th> 
     <th>Weight</th> 
     <th>Views</th> 
     <th>Cost</th> 
    </tr> 

    <tr> 
     <td>Item description here</td> 
     <td class="data">37 pounds</td> 
     <td class="data">132 views</td> 
     <td class="data">$99.59</td> 
    </tr> 
</table> 
+3

могли бы вы предоставить код, который вы пытались добиться того, что ваш искать? –

+0

Вы можете посмотреть на символы в строках один за другим, и когда вы достигнете первой цифры, вы можете поставить перед ним '', аналогичный первому следующему нецифровому символу и '', или вы можете использовать' регулярный выражение' и '.replace()' – david

+0

Прошу прощения, я начинаю jQuery, и у меня нет абсолютно никакого представления о том, как это сделать ... Я исследовал ответы в stackoverflow, но ничего не нашел. – amp511

ответ

5

Вам необходимо использовать Regular Expression, чтобы соответствовать цифрам и обернуть их span.

var rxp = new RegExp("([0-9]+\.?[0-9]+)", "gm"); 
$("td.data").each(function(){ 
    var $this = $(this); 
    var content = $this.html(); 
    $this.html(content.replace(rxp, "<span>$1</span>")); 
}); 

См test case on jsFiddle

+0

Отлично !!! Большое спасибо! – amp511

+0

это регулярное выражение только завершает более 1-значного числа. Когда у вас однозначное число, оно не обернется. –

0

Вы можете использовать регулярное выражение:

var searchPattern = new RegExp(/^\d+$/, 'g'); 
$elem = $('td.data'); 
$elem.html($elem.html().replace(searchPattern , "<span>" + searchPattern + "</span>")); 

Где, $ элем является объект JQuery для HTML-элемента, который вы ищете в, то есть все TD с классом 'данные'.

+1

Вы не учитывали наличие точек и цифры могли быть не с начала, а не в конце тд. –

Смежные вопросы