2012-04-30 50 views
0

我使用twitter API將推文推送並將其分配給變量。像這樣。在文本中查找鏈接並使用jquery將其包裝在標籤中

 self.tweets = $.map(data.results, function(tweet){ 
       return{ 
        author: tweet.from_user, 
        url: 'http://twitter.com/' + tweet.from_user + '/status/' + tweet.id_str, 
        image: tweet.profile_image_url, 
        tweet: tweet.text 
       }; 
      }); 

我爲我工作。我正在將推文附加到HTML。文字是像這樣..

@drwarwick Hi David! Looking forward to catching up with you, but may not get in there today due to work commitments... 

我現在要做的就是將@drwarwick成@drwarwick讓我能風格,並相應地聯繫起來。我如何在推文中找到uisng jquery這樣的單詞。謝謝。

編輯>>>>>

像上面這樣做的東西像stackoverflow。它改變了文字的顏色。

回答

1

我剛剛寫了一個輔助方法來做到這一點。

function HighLight(input) 
{ 
    var output=""; 
    var items=input.split(" "); 
    $.each(items,function(index,item){ 
     var word=items[index]; 
     if(word.match("^@")) 
     { 
      word="<span class='highlightSpan'>"+word+"</span>"; 
     }       
     output+=word+" "; 
    });  
    return output; 
} 

工作例如:http://jsfiddle.net/ZSafX/27/

你可以改變你的代碼,包括像這樣

self.tweets = $.map(data.results, function(tweet){ 
      return{ 
       author: tweet.from_user, 
       url: 'http://twitter.com/' + tweet.from_user + '/status/' + tweet.id_str, 
       image: tweet.profile_image_url, 
       tweet: HighLight(tweet.text) 
      }; 
     }); 
+0

,做幫助。但對我來說,這些推文是通過AJAX加載的。所以這個代碼在tweets被加載之前運行。所以當這個函數運行時,DOM中沒有任何文本,如果我是對的。 – Subash

+0

@Subash:我相信我們在處理來自ajax請求的請求時添加了突出顯示功能調用。所以它應該是很好的去。 – Shyju

相關問題