2013-06-26 107 views
1

我試圖將類添加到串/數組合的部分。我的意思是這樣的:jQuery將類添加到匹配的字符串/數字組合

myword22-30 

myword將始終是相同的,所以它應該與直接的數字可能不同,並且連字符會永遠存在。我想結果是類似的最終加價:

<span class="word">myword</span><span class="num1">22</span><span class="divider">-</span><span class="num2">30</span> 

首先這是可能的嗎?在jQuery中使用相當大的文本塊來做這種事情是有效的嗎?

+0

你能更精確嗎? 'myword22-30'是節點的一個子串嗎?或者它是一個整體節點,比如' myword22-30'? – maialithar

+0

so myword22-30可能在一段文字中

我的段落myword22-30很酷

應該輸出爲

我的段落 myword 22 - 30很酷

user319940

回答

3

添加此類嘗試

$('p').html(function(idx, content){ 
    return content.replace(/myword\d+-\d+/g, function(text){ 
     var numcount = 0; 
     return text.replace(/([a-zA-Z]+|\d+|-)/g, function(val){ 
      if(/[a-zA-Z]/.test(val)){ 
       return '<span class="word">' + val + '</span>'; 
      } else if(/[\d+]/.test(val)){ 
       return '<span class="num' + ++numcount + '">' + val + '</span>'; 
      } else { 
       return '<span class="divider">' + val + '</span>'; 
      } 
     }); 
    }) 
}); 

演示:Fiddle

+0

我猜這隻會工作給予myword的價值?我想要做的是找到每個出現在一個div中,然後添加類。 – user319940

+0

@ user319940查看更新 –

+0

太棒了,接受。非常感謝您的幫助。 – user319940

1

這是你的意思嗎?

var $newClass = $(".word").text() + $(".num1").text() + '-' + $(".num2").text(); 

http://jsfiddle.net/pgbqg/

,那麼你可以通過使用

http://api.jquery.com/addClass/

+0

我不太確定,總結我想找到這個(在一段中):myword22-30 where myword始終是相同的,但任一數字可能不同,並且輸出 myword 22 - 30在HTML – user319940