2015-08-12 4 views
0

Я хочу стилизовать определенные символы внутри моего < код > тег. поэтому я google и нашел функцию .replace(). но у меня были проблемы с номерами стилей. Я хочу изменить его стиль, не изменяя его текст.jQuery replace - styling numbers

вот мой код:

HTML

<code> $years = floor($diff/(365*60*60*24)); </code> 

JS

('code').each(function() 
{ 
    var text = $(this).text(); 
    var setan = text.replace(/\d+/g,'<int>'+'\d'+'</int>'); 
    $(this).html(setan); 
}); 

выход $years = floor($diff/(d*d*d*d));

я хочу сделать это, по крайней мере, как $years = floor($diff/(<b>d</b>*<b>d</b>*<b>d</b>*<b>d<b>));

+0

Вы, вероятно, хотите захвата группы, если вы не хотите, символ "d" вместо этих цифр - Ex: '.Надеть (/ (\ d +)/g, '$ 1') ' – techfoobar

+0

Ожидается результат, чтобы возвращать числа в виде полужирного текста или символа« d »в виде жирного текста? – guest271314

ответ

2

Как я понял, вы хотите номера, которые будут представлены, но не d письма.

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

$("code").each(function() { 
 
    var text = $(this).text(); 
 
    $(this).html(text.replace(/(\d+)/g, '<int>$1</int>')); // here you can place any tags 
 
});
int { 
 
    color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<code>$years = floor($diff/(365*60*60*24));</code>

+0

wow это работает! теперь я просто должен найти способ переустановить цвет .. спасибо .. –

4

Лучше использовать класс CSS для стилизации элемента как

$('code').html(function() { 
 
    var text = $(this).text(); 
 
    return text.replace(/\d+/g, '<span class="d">' + 'd' + '</span>'); 
 
});
code span.d { 
 
    font-weight: bold; 
 
    color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<code> $years = floor($diff/(365*60*60*24)); </code>

+0

http://jsfiddle.net/arunpjohny/2gojrq0q/ –

+0

да, это работает, но я хочу сгладить цвет текста .. –

+0

Затем добавьте правило стиля в класс –

2

я хочу сделать это, по крайней мере, как $years = floor($diff/ (<b>d</b>*<b>d</b>*<b>d</b>*<b>d</b>));

Попробуйте заменить <b></b> для <int></int> при замене текста , используя .html(function(index, html){})

$("code").html(function(_, html) { 
 
    return html.replace(/\d+/g,"<b>d</b>"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<code> $years = floor($diff/(365*60*60*24)); </code>

+0

да, но я хочу изменить его цвет, а не сделайте его жирным. –

+0

@NandaPandyatama Итак, вы хотите выглядеть как 'd * d * d * d' или как' 365 * 60 * 60 * 24' и цветной? Вы не ответили на этот вопрос. –

+0

365 * 60 * 60 * 24 и цветной .. я решил это .. У меня ошибка на моем jQuery .. так что он не изменится .. –