将文本的一部分加粗(直到第一个'/')

时间:2012-03-15 22:36:12

标签: javascript jquery

我需要使用class =“descTD”在元素内部加粗文本,直到第一个正斜杠(/),如下所示:

斜杠 /斜杠后

文本在td:

 <td class="descTD">My text / is this</td>

我是一个javascript jQuery newbe。任何帮助将不胜感激

4 个答案:

答案 0 :(得分:3)

你可以使用这样的东西:

    if($("#textme").text().indexOf("/")>0){
        var t=$("#textme").text();
        $("#textme").html("<b>" + t.substring(0,t.indexOf('/')-1) + "</b>" +     t.substring(t.indexOf('/')));
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="textme">before slash / after slash</div>

答案 1 :(得分:0)

JS -

//get the text to manipulate
var str = $('#element').text(),

    //get the position of the first forward slash
    pos = str.indexOf('/');

//set the HTML of the element to include a span that has a class to alter the display of the text
//(just for what's before the first forward slash)
$('#element').html('<span class="bold">' + str.substr(0, pos) + '</span>' + str.substr(pos));​

CSS -

.bold {
    font-weight : bold;
}​

以下是演示:http://jsfiddle.net/Vx4fL/

答案 2 :(得分:0)

这样的事情会做到这一点

DEMO:http://jsfiddle.net/Eh2ym/

$(selector).html(function(i, old){
   var htm= old.split('/'); 
  return '<strong>'+ htm[0] +'</strong>'+htm[1];    
 })

答案 3 :(得分:0)

假设您正在获取某个标记(span,div等)中的值

var bolded = $("#my_selector").text().replace(/$(.*?)\/(.*)/,"<strong>$1</strong>/$2");

常规表达式表示从开始到第一个匹配/并存储在捕获组1中,匹配其余部分并放入捕获组2,然后构建一个字符串,用{{1}包装组1中的值}和<strong>并重新打开/和其余部分。

我忘记了jQuery如何让你改变内容,但我认为它是

</strong>