2012-06-06 2 views
1

Это мой код, это сообщение приходит от dynamicalyнужно обернуть заданное содержание

<div class="left">6 item(s) - Page 1 of 3 </div> 

Нужно изменить

<div class="left"> <span>6</span> item(s) - Page <span>1</span> of <span>3</span> </div> 

Любой идею?

+0

увидеть это: [ссылка] (http://stackoverflow.com/questions/10896332/jquery-wrap-multiple-div-elements-on-same-class/10897813# 10897813) –

ответ

2
var div = $('.left'); 
div.html(div.html().replace(/(\d+)/g, '<span>$1</span>')); 
+1

Когда я узнаю regex :(Anyways +1 для такого приятного и точного решения. – Jashwant

1

Разделить текст на "Пространство". Вы получите массив элементов. Возьмите индекс, я думал, что он всегда будет таким же и добавит ваш «пролет» на это.

1

Это работает для меня. Я просто проверяю, является ли слово числом. Если да, то я обернуть его внутри span

var left = $('.left'); 
var html = left.html().split(' '); 
for(var i=0,len=html.length;i<len;i++){ 
    if(!isNaN(html[i]) && html[i]!=''){ 
     html[i] = '<span>' + html[i] + '</span>'; 
    } 
} 
left.html(html.join(' ')); 
1

Использование неявного зацикливание, который поставляется изначально в JQuery для сброса HTML каждого совпавшего элемента.

​$(".left").html(function(i,v){ 
    return v.replace(/(\d+)/g, "<span>$1</span>"); 
});​​ 

Fiddle: http://jsfiddle.net/jonathansampson/gEYEE/

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